我有一个XIB文件,其中有一些UI元素。生成的视图由我自己的UIViewController派生类控制。这个工作正常,并且当从主应用程序委托加载XIB文件等时调用viewDidLoad。
但是,在那个XIB文件中我(显然)也有一些子视图。其中一个是UITableView。那个是由UITableViewController派生的自定义类控制的。我在一侧设置了委托,数据源出口,UITableViewController也有正确的视图属性集。但是,当周围视图加载时,不会调用UITableViewController的viewDidLoad。
我认为这是因为主要的UIView / UIViewController对并不真正了解子视图。在UIViewController viewDidLoad中,我可以调用子视图的viewDidLoad。但是,我怀疑这不是预期的用途。那我该怎么做呢?
我所假设的是,从xib文件加载的子视图都获取了viewDidLoad消息。
答案 0 :(得分:2)
你是正确的,你不应该调用子视图的viewDidLoad:方法,因为它应该在加载视图时被调用(无论视图是如何创建的)。来自文档:
无论视图是存储在nib文件中还是以编程方式在loadView方法中创建,都会调用此方法。
这表明我的.xib文件中没有正确设置某些内容(连接?),或者控制器未与其视图正确链接。当你说UITableViewController有正确的视图集时,你是使用“view”属性而不是UITableViewController的“tableView”属性......?