所以我有一个使用以下代码创建的UIAlertController:
let alertView = UIAlertController(title: "Warning", message: "You have made changes to \(workoutTemplate!.name). Do you wish to overwrite these changes?", preferredStyle: UIAlertControllerStyle.ActionSheet)
alertView.addAction(UIAlertAction(title: "Yes, Overwrite", style: UIAlertActionStyle.Destructive, handler: {(alert: UIAlertAction!) in
//... some code
}))
alertView.addAction(UIAlertAction(title: "No, Rename", style: UIAlertActionStyle.Default, handler: {(alert: UIAlertAction!) in
//..some more code
}))
self.presentViewController(alertView, animated: true, completion: nil)
我已设置警报控制器,只需按一下按钮即可显示,但警报会自动消失:
编辑:发现问题!这对我来说是一个愚蠢的疏忽。上面的代码在交换机中。转换后,我立即拨打
self.dismissViewController()
电话。我遗漏了一个else
语句,VC在呈现AlertController后试图立即解散。但是,由于AlertController在此调用时位于导航堆栈的顶部,因此它被解除了。