无法使用警报操作定向到另一个视图控制器
Posted
技术标签:
【中文标题】无法使用警报操作定向到另一个视图控制器【英文标题】:Unable to direct to another view controller using alert action 【发布时间】:2019-02-11 03:55:17 【问题描述】:我希望在出现的警报操作中单击“确定”按钮时将用户定向到另一个视图控制器。用户必须在单击 OK 按钮时被引导,而不是在显示此警报时立即引导。这是我尝试过的:
let alert = UIAlertController(title: "Succesful", message: "Successfully added!", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self.present(alert, animated: true)
let uivc = self.storyboard!.instantiateViewController(withIdentifier: "FourthViewController")
self.navigationController!.pushViewController(uivc, animated: true)
应用程序不会崩溃,但在单击“确定”按钮时它也不会指向我的其他视图控制器。我该如何解决这个问题?
如果有人可以帮助我,我会很高兴!
编辑:我相信我的问题被误解了,所以我试图更清楚地解释事情,对不起我的英语不好。
【问题讨论】:
错误信息说明了一切。 错误信息很清楚,检查您的视图控制器的 StoryboardId 并将其更改为“FourthViewController”。 请search on the error。 确保您添加了相同的视图控制器,其标识符为“FourthViewController” 【参考方案1】:转到故事板中所谓的“FourthViewController”,并将标识符设置为 - 这与名称不同,因此可能会造成混淆。我附上了截图,希望对你有帮助!
并且您希望警报执行的操作需要由“处理程序”处理,通常我更喜欢将其放在它自己的方法中,但为简单起见,以下内容适用于您的情况:
let alert = UIAlertController(title: "Succesful", message: "Successfully added!", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: _ in
let uivc = self.storyboard!.instantiateViewController(withIdentifier: "FourthViewController")
self.navigationController!.pushViewController(uivc, animated: true)
))
self.present(alert, animated: true)
【讨论】:
感谢您的回复!输入身份后,应用程序现在不会崩溃,它运行时不会崩溃。但是,当警报显示时,应用程序不会指向其他视图控制器。我对代码有什么遗漏吗? 不幸的是它不起作用,我什至没有看到任何警报出现:( 对不起,添加了最后一行...你仍然需要出示警报 lololol 现在会显示警报,但是当我单击“确定”按钮时,应用程序崩溃并出现此错误:由于未捕获的异常“InvalidPathValidation”而终止应用程序,原因:“(子项:)必须是非空字符串且不包含 '.' '#' '$' '[' 或 ']''。很抱歉占用您的时间我只是想解决这个问题:( 这可能是您正在导航到的屏幕中的问题...新视图控制器的 viewDidLoad() 中有什么?【参考方案2】:确保调用正确的 nib 文件 确保在 storyboard 中设置了 storyboard id。
【讨论】:
以上是关于无法使用警报操作定向到另一个视图控制器的主要内容,如果未能解决你的问题,请参考以下文章