iOS8中UIActionSheet弹出UIImagePickerController异常处理

iOS8之后,UIActionSheet改父于UIAlertController。带来了一丢丢兼容性的问题。

比如在弹出的actionsheet中选择从相册选择图片或者拍照,之后弹出UIImagePickerController进行选择。

在iOS8以前的方法里,直接在

-(void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex;

Click的委托事件里处理就好了,但是在iOS8,系统会抛出警告

Warning: Attempt to present <UIImagePickerController: 0x292b400>  on <**Controller: 0x723c150> which is already presenting <UIAlertController: 0xd37b8b0>

并且取消弹出ImagePicker行为。

 

原因在警告里说得比较明白了,因为已经有actionsheet存在了,不能present新的。此时我们选择新的委托方法

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex;

didDismissWithButtonIndex方法即可。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。