从UIActionSheet呈现UIPopover

时间:2014-10-03 09:06:13

标签: ios objective-c uiactionsheet

我的问题很简单,但我无法找到解决办法。按下按钮时,我会出现一个带有两个选项(库/相机)的UIActionSheet。当用户按下UIActionSheet上的按钮时,我会使用照片库呈现UIPopoverController或以模态方式呈现相机。

当按下操作表上的按钮时,我在控制台中收到以下警告:

Warning: Attempt to present <UIImagePickerController: 0x17ae1600> on <MyViewController: 0x17a3ca00> which is already presenting <UIAlertController: 0x1884acb0>

关于合适的解决方法的任何想法?

2 个答案:

答案 0 :(得分:16)

我发现这是在iOS8上发生的。我在actionSheet:clickedButtonAtIndex:内呈现了popover。对我来说,解决方案是改为使用actionSheet:didDismissWithButtonIndex:

答案 1 :(得分:0)

我建议在呈现另一个视图控制器之前等待UIActionSheet被隐藏。所以将表示新视图控制器的代码从actionSheet:clickedButtonAtIndex:方法转移到另一个方法并异步调用它,即类似     [self performSelector:@selector(presentImagePicker) withObject:nil afterDelay:1.0];

1秒延迟允许在呈现另一个视图控制器之前隐藏动作表。