我正在创建一个显示用户评论的应用程序。用户输入评论,然后单击提交按钮,然后将出现警报操作视图。单击警报视图中的确定按钮时,我试图将用户定向到我的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: "ViewController")
self.navigationController!.pushViewController(uivc, animated: true)
}))
self.present(alert, animated: true)
但是,当我单击“确定”按钮时出现此错误。
“ InvalidPathValidation”,原因:“((子代:)必须是非空字符串,并且不包含”。) '#''$''['或']''
FourthViewController是基于用户在过去三个视图控制器上的选择而创建的。根据在先前视图控制器中单击的表视图单元的组合,有一个唯一的fourviewviewcontroller。我相信会出现问题是因为当我将用户定向到FourthViewController时,该应用程序不知道FourthViewController包含的内容,因为之前没有单击任何表格视图单元格。当我将VC的方向从FourthViewController更改为FirstViewController时,一切工作都非常好。
是否可以解决此问题?我将不胜感激!非常感谢您,祝你有美好的一天!
答案 0 :(得分:0)
如果我理解正确,FourthViewController具有一些变量,这些变量取决于以前的ViewController。在那种情况下,只需初始化这些变量以设置其值即可:uivc.varName = value
您也可以执行segue而不是实例化视图控制器,并且可以在prepare函数中设置nextViewController的值。
答案 1 :(得分:0)
删除以下行窗体动作完成
let uivc = self.storyboard!.instantiateViewController(withIdentifier:"ViewController")
self.navigationController!.pushViewController(uivc, animated: true)
并执行以下功能
func navigate(){
let uivc = self.storyboard!.instantiateViewController(withIdentifier:"ViewController")
self.navigationController!.pushViewController(uivc, animated: true)
}
现在添加以下操作完成
self.navigate()
如下所示
let alert = UIAlertController(title: "Succesful", message: "Successfully added!", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { _ in
self.navigate()
}))
self.present(alert, animated: true)