我开始学习OC。
第一个问题是关于_window.rootviewcontroller
和[_window addSubview:...]
这两种方式都可以为view
设置UIWindow
(实际上,UIWindow
继承自UIView
)。
所以我想知道的是:
仅使用rootviewcontroller
方法设置window
的{{1}},还是其他的?
更确切地说:
是
addSubview
含义
_window.rootviewcontroller = viewController;
或
[_window addSubview: viewController.view];
或其他什么?
非常感谢。
有没有人可以告诉我有关UIWindow和rootViewController属性的一些细节?
答案 0 :(得分:0)
如果您使用addSubview
:必须传递UIView
个实例,但是当您致电rootviewcontroller
时,您将UIViewController
个实例传递给UIWindow
。
您可以使用addSubview
,但必须将UIView
superview(需要UIViewController
)与UIWindow
相关联,才能使其行为相同,
类似的东西(过去的方式:
[window addSubview:myViewController.view];
[window makeKeyAndVisible];
使用rootviewcontroller
它会为您完成。
这取自Apple:
根视图控制器提供窗口的内容视图。 将视图控制器分配给此属性(以编程方式 或者使用Interface Builder)将视图控制器的视图安装为 窗口的内容视图。如果窗口具有现有视图 层次结构,旧视图在新视图之前被删除 安装。
答案 1 :(得分:-2)
显然不是。根视图控制器通常分配给appdelegate类中的窗口。 此外,根视图控制器始终与UINavigationController关联。因此,UINavigationController的任何根视图控制器都将是其内容视图控制器。
其中,添加subview只是UIView类的一种方法。这有助于将任何子视图添加到相应的视图中。