iOS8 iPad Warning: Attempt to present <UIImagePickerController:xxxx > on xxxx which is already presenting (null)

解决方法:

/*
     I think this is because in iOS 8, alert views and action sheets are actually presented view controllers
     (UIAlertController). So, if you're presenting a new view controller in response to an action from the UIAlertView, 
     it's being presented while the UIAlertController is being dismissed.I worked around this by delaying the 
     presentation of the UIImagePickerController until the next iteration of the runloop, by doing this:
*/
__weak typeof(self) weakSelf = self;
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
    [weakSelf presentViewController:imagePicker animated:YES completion:nil];
}];

However, the proper way to fix this is to use the new UIAlertController API on iOS 8 (i.e. use if ([UIAlertController class]) ... to test for it). This is just a workaround if you can't use the new API yet.

posted @ 2016-07-14 11:42  Rinpe  阅读(3395)  评论(0编辑  收藏  举报