【发布时间】:2019-02-25 02:50:21
【问题描述】:
我希望我的应用程序可以“自动”从 ViewControll A 到 b,b 到 c,(a,b,c 是独立的视图控制器),所以我做到了:
在 A_ViewController 中定义了一个计时器,可以每隔一分钟从 A 到 B 再到 C。
-
在 StoryBoard 上为 ViewController A 和 B 设置 segue:
A_ViewController : 'goToB' 和 'goToC'
B_ViewController : 'goToC'
并在 A_ViewController 中覆盖“overwrite func prepare(for segue:.....”。
代码:
class A_ViewController: ViewController {
...//in Timer
//first 1 minute
performSegueWithIdentifier("goToB", sender: self)
//second minute
B_Controller(). goToC()
...
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "goToB" {
let B_Controller = segue.destination as! B_ViewController
B_ViewController.msg = "From AtoB"
}
if segue.identifier == "goToSearchLocation" {
let C_ViewController = segue.destination as! C_ViewController
C_ViewController.msg = searchWord
}
}
class B_Controller: ViewController {
...
func goToC() {
performSegueWithIdentifier("goToC", sender: self)
}
}
运行APP后,第一次segue可以完成(显示ViewController B成功),但之后总是显示如下错误信息:
由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'Receiver () has no segue with identifier 'goToC''
但我确实在storyBoard 上设置了一个segue 'goToC'。我不知道如何解决它。代码已经是我从谷歌搜索修改的。
【问题讨论】: