我创建了一个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上的按钮后,我得到
有谁能帮我一下吗?谢谢!警告:试图在演示时从视图控制器中解散或解雇正在进行中!
请在演示动作表时实现小延迟。
[self performSelector:@selector(presentActionsheet) withObject:nil afterDelay:0.2f];
在我看来,这是一个bug(您应该提交一个bug报告)。我在以下情况下测试了一个更简单的项目(只有一个按钮和一个打开ActionSheet的操作,没有委托):
- Swift XCode Beta 4 ->警告
- ObjC XCode Beta 4 -> warning
- ObjC Xcode 5.1.1 -> OK
顺便说一下,我记得你,因为iOS8 ActionSheet被UIAlertController
取代,UIAlertControllerStyle
设置为ActionSheet
。但我们必须继续使用ActionSheet,这也是事实,特别是因为我们可能仍然以版本为目标。8 .