IBOutlet nil-按钮

时间:2018-11-20 06:24:52

标签: swift uinavigationcontroller uibutton iboutlet

我有一个HomeController和一个registerController。 HomeController嵌入在导航控制器中,并且是根视图控制器。如果我在HomeController的ViewWillAppear中以模态形式显示registerController:

let reg = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "signup") as! RegisterController
reg.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext
reg.modalTransitionStyle = UIModalTransitionStyle.flipHorizontal
reg.view.frame = self.view.frame
self.view.addSubview(reg.view)

没有问题。但是,如果我通过将其推入导航控制器堆栈中来展示它的话:

let v = RegisterController()
    self.navigationController?.pushViewController(v, animated: true)

该应用程序崩溃,并说signUp按钮(位于registerController中)的IBOutlet为零。我已经重新创建了插座,清理了项目并重新启动了xcode,但没有任何效果...

1 个答案:

答案 0 :(得分:4)

这不是“错误”。您的代码有问题。它与推动与呈现无关。这行是错误的:

let v = RegisterController()

这将创建一个没有连接任何插座的准系统视图控制器。出口连接到该类的情节提要实例中。像在第一个代码中一样,在情节提要中创建视图控制器 ,一切都会顺利进行。

let v = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "signup") as! RegisterController