【发布时间】:2015-08-03 04:49:52
【问题描述】:
我正在快速创建一个带有几个文本字段的view controller 和一个确认用户输入的accept button。 accept button 还会检查是否有任何文本字段为空。如果是这样,它会弹出一个alert,说类似it cannot be empty。如果不为空,它将存储输入,然后跳转到另一个视图。
我创建了一个名为 checEmpty() 的独立函数,如下所示:
func checEmpty(title: String, object: UITextField) -> (Bool) {
if object.text.isEmpty {
let alertController = UIAlertController(title: "Invalid input",
message:"\(title) cannot be empty",
preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(UIAlertAction(title: "Dismiss",
style: UIAlertActionStyle.Default)
self.presentViewController(alertController, animated: true, completion: nil)
return false
} else {
return true
}
}
我在acceptButton 操作中调用了这个函数:
@IBAction func acceptButton(sender: UIButton){
if(checEmpty("Event", object: eventName) && checEmpty("Priority", object: Priority)
{
//if not empty, confirm the user input
// ...
}
当我运行它时,警报消息可以正常工作,但由于某种原因控制台显示如下:
2015-08-03 12:11:50.656 FinishItToday[13777:688070] > 的窗口不等于 的视图窗口!
谁能告诉我为什么会出现这个警告?非常感谢!
PS。 我想要它做的是,如果任何文本字段为空,则显示警报,然后留在同一页面。如果它们都不是空的,则执行 segue 并切换到另一个视图。上面的代码工作正常,除了警告。
【问题讨论】:
-
好吧,我仍然不知道该警告的含义,但我通过重写 shouldPerformSegue 函数以某种方式解决了问题,让 segue 在有空文本字段时停止工作。现在我相信 performViewController() 和 segue 之间可能存在一些冲突。
标签: ios swift uialertcontroller