我想向用户提供一个简单的UIAlertController,其中一个选项触发关闭父视图控制器 . 这是我正在使用的代码:
let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Close View", style: UIAlertActionStyle.Destructive, handler: {
action in
self.dismissViewControllerAnimated(true, completion: nil)
}))
alert.addAction(UIAlertAction(title: "CANCEL", style: UIAlertActionStyle.Cancel, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
它没有任何影响 . 执行“关闭视图”处理程序后,显示警报的视图控制器仍然存在 .
我也在UIAlertAction动作块中尝试了 self.navigationController?.dismissViewControllerAnimated(true, completion: nil)
,但这也没有用 .
2 回答
运用
代替
根据需要工作并关闭显示警报的视图控制器 .
您使用presentViewController来呈现警报 . 因此,如果您使用self.dismissViewController,它只是解除警报,而不是父视图控制器 . 如果您尝试隐藏父视图控制器,则可以创建宽度高度等于self.view的视图,并将其设置为黑色 . 然后使用view.addSubView随时添加它 .