我创建了一个UIImageView。点击它时,会弹出UIActionSheet
。
@IBOutlet weak var avatarImageView: UIImageView!
@IBAction func tapUIImageViewHandler(sender: UITapGestureRecognizer) {
var popMenu: UIActionSheet = UIActionSheet(title: "Upload user avatar", delegate: self, cancelButtonTitle: "Cancel", destructiveButtonTitle: nil, otherButtonTitles: "Choose from library", "Take photo")
popMenu.showInView(self.view)
}
func actionSheet(popMenu: UIActionSheet!, clickedButtonAtIndex buttonIndex: Int){
println("click at index \(buttonIndex)")
switch buttonIndex {
case 2:
takePhoto()
case 1:
chooseFromLib()
default:
break
}
}
但是当我在模拟器上运行它时,单击UIActionSheet上的按钮后,我得到了
警告:在演示文稿时尝试从视图控制器中解除 或解雇正在进行中!
任何人都可以帮助我吗?谢谢!
答案 0 :(得分:1)
请在提交行动表时实施小延迟。
[self performSelector:@selector(presentActionsheet) withObject:nil afterDelay:0.2f];
答案 1 :(得分:0)
在我看来,这是一个错误(你应该提交错误报告。在下列情况下,我测试了一个更简单的项目(只有一个按钮,一个动作打开ActionSheet,没有委托):
顺便提一下,我记得你,因为UIAlertController
取代了iOS8 ActionSheet,UIAlertControllerStyle
设置为ActionSheet
。但是我们必须继续使用ActionSheet也是如此,特别是因为我们所有人都可能仍然使用版本< 8。