应该从loadView中调用[super loadView]还是不是?
问题描述:
在Matt Newburg编写的iOS 4中,他指出: “要为UIViewController手动提供视图,请实现其loadView方法...您不得调用超级”。应该从loadView中调用[super loadView]还是不是?
在Erica Sadun的iOS 5开发人员指导手册中,她指出: “loadView方法允许您设置屏幕和布置任何子视图....确保每当从专门用户继承时调用[super loadView]子类如UITableViewController或UITabBarController。“
这对我来说至少是令人困惑的。
答
苹果是真理的来源,他们说没有超级电话。
如果重写此方法,以手动创建你的意见,你 应该这样做并分配层次的根视图到 视图属性。 (您创建的视图应该是唯一的实例,并且不应该与其他视图控制器对象共享 )。
[编辑]
在UIViewController类参考周围散射另一个重要的注意事项:
默认的loadView方法尝试从相关联的笔尖 文件加载视图与视图控制器(如果有的话)。
哎呦。出于某种原因,我认为他们没有具体说明。 – 2012-02-02 00:33:59
我对此有个简短的问题。我有AppDelegate并将它的rootView设置为另一个UIViewController类实例(我在其中修改了loadView中的视图)。如果我不调用[super loadView],则会调用三次该方法。如果我称之为,一切都是完美的。那么我错过了苹果公司的文档? 如果我不被允许做[超级loadView]我应该在哪里设置我的视图,如果我不加载视图从笔尖? – andi1984 2012-02-05 16:30:00
如果我将UINavigationController作为rootViewController设置为应用程序委托,并将UIViewController再次推送到navcontroller栈,那么所有内容都是完美的。所以我不明白为什么会出现这些差异。 – andi1984 2012-02-05 16:37:03