Kay*_*Kay 14 iphone uiimagepickercontroller
我编写了简单的代码来测试UIImagePickerController:
@implementation ProfileEditViewController
- (void)viewDidLoad {
[super viewDidLoad];
photoTaker_ = [[UIImagePickerController alloc] init];
photoTaker_.delegate = self;
photoTaker_.sourceType = UIImagePickerControllerSourceTypeCamera;
photoTaker_.showsCameraControls = NO;
}
- (void)viewDidAppear: (BOOL)animated {
[self presentModalViewController: photoTaker_ animated: NO];
}
@end
Run Code Online (Sandbox Code Playgroud)
我收到如下奇怪的警告:
2010-05-20 17:53:13.838 TestProj [2814:307]使用两阶段旋转动画.要使用更平滑的单阶段动画,此应用程序必须删除两阶段方法实现.2010-05-20 17:53:13.849 TestProj [2814:307]旋转多个视图控制器或视图控制器而不是窗口委托时,不支持使用两阶段旋转动画
知道这是关于什么的吗?非常感谢提前!
Joh*_*ter 11
如果您UIImagePickerController在另一个内部展示,则会显示此消息UIViewController.因为它没有像UINavigationController堆栈一样被推动,所以在这个UIWindow级别上存在混乱.我不知道警告是否有问题,但要消除警告,您可以执行以下操作:
// self = a UIViewController
//
- (void) showCamera
{
cameraView = [[UIImagePickerController alloc] init];
[[[UIApplication sharedApplication] keyWindow] setRootViewController:cameraView];
[self presentModalViewController:cameraView animated:NO];
}
- (void) removeCamera
{
[[[UIApplication sharedApplication] keyWindow] setRootViewController:self];
[self dismissModalViewControllerAnimated:NO];
[cameraView release];
}
Run Code Online (Sandbox Code Playgroud)
好吧,您正在 ProfileEditViewController 的 viewDidAppear 中以模态方式呈现 UIImagePickerController。
想想这个。这意味着当 ProfileEditViewController 视图出现时,UIImagePickerController 出现,稍后你关闭 UIImagePickerController 并返回到 ProfileEditViewController,然后再次调用 viewDidAppear 并出现 UIImagePickerController,假设稍后你关闭 UIImagePickerController 并返回到 ProfileEditViewController,然后再次调用 viewDidAppear 并....你明白了。
不过,这个警告相当神秘,不确定这是否是它想告诉你的。我建议在 ProfileEditViewController 的某处创建一个按钮来调用presentModalViewController,并确保您有一种方法来关闭 UIImagePickerController (我从未使用过它,不确定它是否自动有一个)。