使用UIImagePickerController获取"使用两阶段旋转动画"警告

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)


Tom*_*Tom 0

好吧,您正在 ProfileEditViewController 的 viewDidAppear 中以模态方式呈现 UIImagePickerController。

想想这个。这意味着当 ProfileEditViewController 视图出现时,UIImagePickerController 出现,稍后你关闭 UIImagePickerController 并返回到 ProfileEditViewController,然后再次调用 viewDidAppear 并出现 UIImagePickerController,假设稍后你关闭 UIImagePickerController 并返回到 ProfileEditViewController,然后再次调用 viewDidAppear 并....你明白了。

不过,这个警告相当神秘,不确定这是否是它想告诉你的。我建议在 ProfileEditViewController 的某处创建一个按钮来调用presentModalViewController,并确保您有一种方法来关闭 UIImagePickerController (我从未使用过它,不确定它是否自动有一个)。