UIWindow类:addSubview和setRootViewController之间有什么区别

时间:2011-11-14 14:50:23

标签: ios

manual(清单5-2)说分割视图控制器可以像这样添加到UIWindow:

[window addSubview:splitVC.view];

但是,在示例代码中,我看到以下内容完全正常。

[window setRootViewController:splitVC];

这些之间有什么区别?

1 个答案:

答案 0 :(得分:4)

在这种情况下,他们都做同样的事情,但addSubviewsetRootViewController之间存在差异。 addSubViewUIView的方法,而UIWindow继承自UIView因此方法,而rootviewcontroller属性来自UIWindow类。但方法的差异是

  • addSubview将视图添加到调用者视图层次结构和 调用对象保留所有权。

  • setRootViewController将视图设置为仅Windows视图或主视图 如果你愿意的话。另外一点是它删除了所有子视图(如果有的话),而addSubView没有这样做。