为什么iOS 5.0不像普通窗口应用程序?为什么要求使用视图控制器?

我有一个iOS应用程序,我使用 Xcode 4.0的“基于窗口的应用程序”模板创建.当时工作正常,它使用的是iOS 4.3 SDK.这是一个简单地将按钮,标签等直接放在窗口上的应用程序.没有视图控制器 – 没什么.

但是现在我已经升级到Xcode 4.2(以及它的iOS 5.0 SDK),并且我运行了应用程序,当应用程序在模拟器中启动时,此消息会被记录到控制台:

“应用程序在应用程序启动结束时应该有一个根视图控制器”

可以肯定的是,该应用程序继续工作,但每次启动时都会打印出这个相当麻烦的日志.

为什么会这样?为什么iOS 5.0更喜欢/请求视图控制器?

解决方法

我不清楚具体记录消息的原因,但UIWindow和UIViewController之间的集成在iOS的最后几次迭代中一直在增加. iOS 4为UIWindow添加一个rootViewController属性.这两个类一起管理视图旋转.鉴于iOS 5为UIViewController引入的新功能(特别是创建自己的容器视图控制器的能力),很明显两个类之间的关系将继续发展.正如您所说,您的应用程序将继续在iOS 5中运行,因此拥有根视图控制器并不是一项艰难而快速的要求.也许有未来的iOS版本计划的功能将取决于可用的视图控制器.

I don’t have anything against them,and I will use them if iOS wants
me to. I was just curIoUs about the above behavior.

我会将记录的消息解释为从Apple提供根视图控制器的温和而持久的推动.大多数应用程序已经使用了视图控制器,所以这不是一个很大的改变,但是可能有很多应用程序没有正确地将窗口的rootViewController属性设置为它们的顶级视图控制器.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...