IBOutlet nil - 按钮
IBOutlet nil - button
我有一个 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)
应用程序崩溃并表示注册按钮(位于 registerController 中)的 IBOutlet 为零。我重新创建了插座并清理了项目并重新启动 xcode 但没有任何效果......
这不是“错误”。您的代码有问题。它与推动与呈现无关。就是这一行写错了:
let v = RegisterController()
这将创建一个没有连接插座的准系统视图控制器。插座连接在这个 class 的故事板实例中。像在第一个代码中所做的那样,从故事板 创建视图控制器,一切都会好起来的。
let v = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "signup") as! RegisterController
我有一个 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)
应用程序崩溃并表示注册按钮(位于 registerController 中)的 IBOutlet 为零。我重新创建了插座并清理了项目并重新启动 xcode 但没有任何效果......
这不是“错误”。您的代码有问题。它与推动与呈现无关。就是这一行写错了:
let v = RegisterController()
这将创建一个没有连接插座的准系统视图控制器。插座连接在这个 class 的故事板实例中。像在第一个代码中所做的那样,从故事板 创建视图控制器,一切都会好起来的。
let v = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "signup") as! RegisterController