【发布时间】:2018-04-17 06:20:02
【问题描述】:
请详细解释为什么我们必须写“obj?.mainObj = self”行,以便 pushViewController 方法工作?所以如果我删除“obj?.mainObj = self”行,pushViewController 不会工作,但为什么?
class ViewController: UIViewController {
var obj:Bo?
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.white
obj = Bo()
// obj?.mainObj = self
obj?.setupViews()
}
func push(){
print("hello")
let controller = AppDetailController()
navigationController?.pushViewController(controller, animated: true)
}
}
class Bo:UIViewController{
var mainObj:ViewController?
override func viewDidLoad() {
super.viewDidLoad()
setupViews()
}
func setupViews(){
mainObj = ViewController()
mainObj?.push()
}
}
【问题讨论】:
-
将一个类方法交给另一个你需要调用 self.提供从哪个控制器委托您的方法(另一个类中的方法)的参考。简称委托。
-
如果您尝试从 ViewControler 推送到 Bo ,您可以直接在任何按钮点击或 viewDidAppear 中调用推送功能。您在此处遵循的过程称为委托。
-
AppDetailController 在哪里?
标签: ios swift swift3 swift2 xcode8