什么类型的代码正确:AppDelegate 中的 addSubview 或直接控制器分配?
Posted
技术标签:
【中文标题】什么类型的代码正确:AppDelegate 中的 addSubview 或直接控制器分配?【英文标题】:What type of code correct: addSubview or direct controller assignment in AppDelegate? 【发布时间】:2011-07-14 16:08:43 【问题描述】:什么类型的代码是正确的,它们是如何工作的(如果结果相同,第一个和第二个有什么区别):
在应用程序中:didFinishLaunchingWithOptions:为了使第一个控制器的视图可见,我可以使用这样的方法:
[self.window addSubview:myController.view];
[self.window makeKeyAndVisible];
或
self.window.rootViewController = self.myController;
[self.window makeKeyAndVisible];
什么是差异?哪个更正确、更安全?
问候,亚历克斯。
【问题讨论】:
【参考方案1】:Window也是继承自UIView
rootViewController 是 Window 的属性,而不是来自 UIView。
根视图控制器提供窗口的内容视图。将视图控制器分配给该属性(以编程方式或使用 Interface Builder)将视图控制器的视图安装为窗口的内容视图。如果窗口具有现有的视图层次结构,则在安装新视图之前会删除旧视图。
此属性的默认值为 nil。
addsubview 方法继承自 UIView。
如果你第一次在你的窗口上使用这个,你会得到同样的效果。
【讨论】:
以上是关于什么类型的代码正确:AppDelegate 中的 addSubview 或直接控制器分配?的主要内容,如果未能解决你的问题,请参考以下文章
AppDelegate 和 .xib 未正确实施,但构建成功?
如果它是子视图控制器,如何将 AppDelegate 中的 managedObjectContext 传递给正确的视图控制器?