我注意到应用程序代理中有很多iPhone应用程序的示例

- (void)applicationDidFinishLaunching:(UIApplication *)application

[window addSubview: someController.view]; (1)

而不是

self.window.rootViewController = self.someController; (2)

Is there any practical reason to use one over the other? Is one technically correct? Do controller's 有 an equivalent command to number (2) like

self.someController.rootController = self.someOtherController; // pseudocode

推荐答案

UIWindow rootViewController属性是iOS4的新属性.

较老的技术是使用addSubview.

推荐的新技术是设置rootViewController.

Objective-c相关问答推荐

viewWillAppear,viewDidAppear 没有被调用,没有触发

在 iOS 7 上,如果最终包含在选项卡栏控制器中,则使用工具栏推送控制器会留下不可用空间的间隙

iOS 块和对自身的强/弱引用

将长按手势和拖动手势结合在一起

如果用户点击屏幕键盘,我如何关闭键盘?

go 掉 UISearchBar 下的 1px 边框

将 CFDictionaryRef 转换为 NSDictionary?

具有匿名函数/块的 NSTimer?

如何将当前方法的名称或签名放入 NSString?

iOS 6 Facebook 发布过程以remote_app_id 与存储的 id 不匹配结束

UITextView 禁用文本 Select

反转 NSString 文本

从 UITabBarController 在当前上下文中呈现模态视图控制器后出现黑屏

HTML 内容适合 UIWebview 而无需缩小

从 iPhone 设备查找当前国家

使用 CocoaPods 时如何向 Xcode 添加自定义项目配置?

如何修复UIPopoverController 已弃用警告?

导航返回时重新加载 UITableView?

Objective-c - CABasicAnimation 在动画后应用更改?

无法在 iOS7 上将 UITextField 添加到 UIAlertView ...在 iOS 6 中有效