假设我有两节课。
1)class ViewControllerA: UIViewController
2)class ViewControllerB: UIViewController
另外,我的Main.storyboard
文件中有2个场景
1)绿色背景附加到ViewControllerA
并带有1个按钮的场景
2)具有附加到ViewControllerB
我实例化B
let newScene = ViewControllerB()
self.present(newScene, animated: true, completion: nil)
而不是使用故事板帮助方法
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let newScene = storyBoard.instantiateViewController(withIdentifier: "ViewControllerB") as! ViewControllerB
self.present(newScene, animated: true, completion: nil)
如果存在差异,为什么它们不同?
答案 0 :(得分:1)
我实例化
B
而不是使用之间是否存在差异 故事板辅助方法。
<强>绝对强>
故事板为我们做了很多很棒的事情(如果设置正确的话)。但是,如果您自己实例化视图控制器,则必须自己设置所有内容。这意味着,您必须实例化视图,将控制事件连接到方法,配置UI的外观等等...所有代码。故事板将所有代码转换为资源文件,并为我们完成大部分工作。
例如:
在情节提要中,您可以将控件中的事件连接到视图控制器中标有@IBAction
的方法。但如果你不使用故事板,那么你必须自己连接控制事件:
self.myButton.addTarget(self, action: #selector(buttonTapped:), for: .touchUpInside)