iOS警告:正在进行演示或解雇时尝试从视图控制器中解除

时间:2014-08-01 05:50:28

标签: ios xcode swift

我创建了一个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上的按钮后,我得到了

  

警告:在演示文稿时尝试从视图控制器中解除   或解雇正在进行中!

任何人都可以帮助我吗?谢谢!

2 个答案:

答案 0 :(得分:1)

请在提交行动表时实施小延迟。

[self performSelector:@selector(presentActionsheet) withObject:nil afterDelay:0.2f];

答案 1 :(得分:0)

在我看来,这是一个错误(你应该提交错误报告。在下列情况下,我测试了一个更简单的项目(只有一个按钮,一个动作打开ActionSheet,没有委托):

  • Swift XCode Beta 4 - >警报
  • ObjC XCode Beta 4 - >警告
  • ObjC Xcode 5.1.1 - >行

顺便提一下,我记得你,因为UIAlertController取代了iOS8 ActionSheet,UIAlertControllerStyle设置为ActionSheet。但是我们必须继续使用ActionSheet也是如此,特别是因为我们所有人都可能仍然使用版本< 8。