Ios 无法使用警报操作指向其他视图控制器

Ios 无法使用警报操作指向其他视图控制器,ios,swift,cocoa-touch,storyboard,alert,Ios,Swift,Cocoa Touch,Storyboard,Alert,我希望在出现警报操作中单击“确定”按钮时,将用户定向到另一个视图控制器。单击“确定”按钮时,必须指示用户,而不是在显示此警报时立即指示用户。以下是我尝试过的: let alert = UIAlertController(title: "Succesful", message: "Successfully added!", preferredStyle: .alert) alert.addAction(UIAlertAction(title: "OK", style: .default, hand

我希望在出现警报操作中单击“确定”按钮时,将用户定向到另一个视图控制器。单击“确定”按钮时,必须指示用户,而不是在显示此警报时立即指示用户。以下是我尝试过的:

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)
当单击“确定”按钮时,应用程序不会崩溃,但也不会指向我的其他视图控制器。如何解决此问题

如果有人能帮我,我会很高兴的

编辑:我相信我的问题被误解了,所以我试着把事情解释得更清楚,抱歉我的英语不好

转到故事板中所谓的“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)
  • 确保调用的是正确的nib文件
  • 确保在情节提要中设置了情节提要id

  • 错误消息说明了一切。错误消息非常清楚,请检查视图控制器的情节提要ID并将其更改为“FourthViewController”。请确保已添加具有标识符“FourthViewController”的相同视图控制器。感谢您的回复!输入身份后,应用程序现在不会崩溃,它运行时不会崩溃。但是,当警报显示时,应用程序不会指向其他viewcontroller。代码中是否有我遗漏的内容?不幸的是,它不起作用,我甚至没有看到任何警报显示:(抱歉,添加了最后一行…您仍然必须显示警报lolololNow警报显示,但当我单击“确定”按钮时,应用程序崩溃,我收到此错误:由于未捕获异常“InvalidPathValidation”而终止应用程序,原因:'(子项:)必须是非空字符串,并且不包含''.'$''['或']''。非常抱歉占用您的时间,我只想解决这个问题:(这可能是您导航到的屏幕中的一个问题…新视图控制器的viewDidLoad()有什么内容?