我有一个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属性设置为它们的顶级视图控制器.