我使用 UIAlertController 创建警报,并在其中添加一些操作。但是当我触摸它的按钮时,什么都没有改变。 (包括“取消”按钮),所以我只能重新启动此应用程序才能解决此问题。
let alert = UIAlertController(title: “my alert”, message: “some message...”, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: “button1”, style: .default, handler: { (_) in
print(“button 1 up inside”)
}))
alert.addAction(UIAlertAction(title: “button2”, style: .default, handler: { (_) in
print(“button 2 up inside”)
}))
alert.addAction(UIAlertAction(title: “cancel”, style: .cancel, handler: { (_) in
}))
self.present(alert, animated: true, completion: nil)
已构建Xcode 10。
答案 0 :(得分:1)
我在使用Sprite Kit的应用程序中遇到了类似的问题。解决方法如下:
let connectActionSheet = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
connectActionSheet.addAction(UIAlertAction(title: "Button1", style: .default, handler: { (action:UIAlertAction) in
//Code if this button is pressed
}))
connectActionSheet.addAction(UIAlertAction(title: "Button2", style: .default, handler: { (action:UIAlertAction) in
//Code if button2 is pressed
}))
connectActionSheet.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
let vc = self.view?.window?.rootViewController
if vc?.presentedViewController == nil {
vc?.present(connectActionSheet, animated: true, completion: nil)
}
最后4行使它起作用。希望对您有帮助。
答案 1 :(得分:-1)
非常感谢!由于这些代码,我的视图控制器无法关闭此警报
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
}
override func dismiss(animated flag: Bool, completion: (() -> Void)? = nil) {
}