UIWindow类: addSubview和setRootViewController有什么区别?

3

根据手册(清单5-2),分割视图控制器可以像下面这样添加到UIWindow中:

[window addSubview:splitVC.view];

然而,我看到的一个示例代码中,以下内容运行得非常好。
[window setRootViewController:splitVC];

这两者有何不同?
1个回答

4

在这种情况下,它们都具有相同的功能,但是addSubviewsetRootViewController之间存在差异。addSubViewUIView的方法,而UIWindowUIView继承,因此该方法是从UIWindow类中获取的。但是这些方法的区别在于:

  • addSubview将视图添加到调用者的视图层次结构中,并且调用对象保留所有权。

  • setRootViewController将视图设置为窗口的唯一视图或主要视图。另一个要点是它会删除所有子视图(如果有的话),而addSubView则不会这样做。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接