UIAlerts 的问题
Trouble with UIAlerts
我在使 UIAlerts 工作时遇到了一些问题。我已经看过几个似乎可以解决这个问题的 SO 问题,但我仍然有问题。似乎没有显示警报视图。这是我的代码:
var inputTextField: UITextField?
let actionSheetController: UIAlertController = UIAlertController(title: "Create a password", message: "", preferredStyle: .Alert)
let save: UIAlertAction = UIAlertAction(title: "Save", style: .Default) { action -> Void in
if !(inputTextField?.text=="password"){
println(inputTextField?.text)
}else{
println("You have a really bad password")
}
}
actionSheetController.addAction(save)
actionSheetController.addTextFieldWithConfigurationHandler { textField -> Void in
inputTextField = textField
}
self.presentViewController(actionSheetController, animated: true, completion: nil)
这里是错误:
Attempt to present <UIAlertController: 0x7fa7016305e0> on <PassProtect.ViewController: 0x7fa701576600> whose view is not in the window hierarchy!
有谁知道为什么没有显示这个?
非常感谢任何帮助或建议!
这是因为当您调用显示 UIAlertController 时,self.view 不在屏幕上。如果您在 viewDidLoad()
部分编写此代码,这将不起作用,因为 self.view 仍在屏幕外。
您可以在 self.view 可用后进行此调用,例如在 viewDidAppear()
中或通过任何类型的 UI 操作(例如单击按钮)。基本上,在 viewDidDisappear()
.
之前发生的任何事情
有一个 similar question with similar information if you want to read it and also here 用于更普遍的情况,即尝试呈现不在视图层次结构中的任何类型的视图控制器。
我在使 UIAlerts 工作时遇到了一些问题。我已经看过几个似乎可以解决这个问题的 SO 问题,但我仍然有问题。似乎没有显示警报视图。这是我的代码:
var inputTextField: UITextField?
let actionSheetController: UIAlertController = UIAlertController(title: "Create a password", message: "", preferredStyle: .Alert)
let save: UIAlertAction = UIAlertAction(title: "Save", style: .Default) { action -> Void in
if !(inputTextField?.text=="password"){
println(inputTextField?.text)
}else{
println("You have a really bad password")
}
}
actionSheetController.addAction(save)
actionSheetController.addTextFieldWithConfigurationHandler { textField -> Void in
inputTextField = textField
}
self.presentViewController(actionSheetController, animated: true, completion: nil)
这里是错误:
Attempt to present <UIAlertController: 0x7fa7016305e0> on <PassProtect.ViewController: 0x7fa701576600> whose view is not in the window hierarchy!
有谁知道为什么没有显示这个?
非常感谢任何帮助或建议!
这是因为当您调用显示 UIAlertController 时,self.view 不在屏幕上。如果您在 viewDidLoad()
部分编写此代码,这将不起作用,因为 self.view 仍在屏幕外。
您可以在 self.view 可用后进行此调用,例如在 viewDidAppear()
中或通过任何类型的 UI 操作(例如单击按钮)。基本上,在 viewDidDisappear()
.
有一个 similar question with similar information if you want to read it and also here 用于更普遍的情况,即尝试呈现不在视图层次结构中的任何类型的视图控制器。