我正在尝试使“取消”按钮起作用并导航至上一个屏幕。我在操作表的外面按,取消事件仍在发生。
这是我的代码:
let alertController = UIAlertController(title: "searchEvent", message: nil, preferredStyle: .actionSheet)
alertController.addAction(UIAlertAction(title: "event 1", style: .default, handler: nil)
alertController.addAction(UIAlertAction(title: "event 2", style: .default, handler: nil)
alertController.addAction(UIAlertAction(title: "event 3", style: .default, handler: nil)
alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: {[weak self] (action) in
self?.dismiss(animated: true, completion: nil)
}))
答案 0 :(得分:0)
self.present(alertController, animated: true, completion: {
alertController.view.superview?.subviews[0].isUserInteractionEnabled = false
})
这将禁止用户在操作表之外点击任何行为
答案 1 :(得分:0)
如果您想要不同的行为来点击“取消”和点击“动作表”之外,前者则取消并关闭VC,后来只取消动作表,那么您需要将“取消”按钮样式更改为“取消”以外的其他样式,然后添加手势识别器至 self.actionSheet.view.superview?.subviews.first?
手势识别器块将关闭操作表 取消按钮块将关闭视图控制器。