【发布时间】:2014-12-01 05:04:51
【问题描述】:
我有一个简单的程序,其中包含导航控制器和创建的序列以在 3-5 个屏幕之间切换。数据在主视图控制器中,并且我在主视图控制器和第二个视图控制器之间正确设置了委托和协议。我遇到的问题是我不确定如何在主视图和第三个视图之间设置适当的委托。我的主要问题是覆盖 prepareForSegue 函数。
因为程序一次流过一个屏幕(主视图转到第二个视图,第二个视图转到第三个视图等)我不确定应该在哪里以及如何使用此功能。我已将主视图设置为遵守第三视图控制器协议,但我只是不确定如何将其设置为委托。
例如,我知道如果我在第二个视图控制器中重写 prepareForSegue 函数,我不能使用“self”作为委托。我想让主视图成为委托,但我不确定让非“自我”视图成为委托的语法是什么。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "2ndViewTo3rdView"{
let thirdVC:ThirdViewController = segue.destinationViewController as ThirdViewController
thirdVC.delegate = (????)
}
}
我尝试了类似“navigationController?.topViewController”的内容,但出现以下错误:类型“UIViewController”不符合协议“ThirdViewDelegate”
在这方面的任何帮助将不胜感激。
【问题讨论】:
标签: ios swift uiviewcontroller delegates protocols