我想在我的 tableViewController 中使用我的 viewDidLoad 函数。如何让 viewDidLoad 在我的控制器中运行?
tableViewController = [[TableViewController alloc] init];
UITableView *tableView = [[UITableView alloc] init];
tableViewController.view = tableView;
....
我想在我的 tableViewController 中使用我的 viewDidLoad 函数。如何让 viewDidLoad 在我的控制器中运行?
tableViewController = [[TableViewController alloc] init];
UITableView *tableView = [[UITableView alloc] init];
tableViewController.view = tableView;
....
来自 Apple 文档:
在视图控制器将其视图层次结构加载到内存后调用此方法。无论视图层次结构是从 nib 文件加载还是在 loadView 方法中以编程方式创建,都会调用此方法。您通常覆盖此方法以对从 nib 文件加载的视图执行额外的初始化。
所以你可以尝试从NIB实例化它或者覆盖loadView方法。Apple文档的另一个步骤:
如果您无法在情节提要或 nib 文件中定义视图,请覆盖 loadView 方法以手动实例化视图层次结构并将其分配给视图属性。
viewDidLoad
将在实际加载视图时调用,这将在您呈现视图控制器后发生,例如:
将其添加到导航控制器,
将其添加到标签栏控制器,
模态地呈现它。
这是您的代码中缺少的部分。如果你解释你想如何展示你的视图控制器,我可能会提供进一步的帮助。另外,看看这个:展示视图控制器。
(我假设您尝试覆盖view
表视图控制器的属性的事实只是试图“让事情正常工作” - 但您不需要对此做任何事情,视图控制器将正确设置为里面的表格视图)。
tableViewController = [[TableViewController alloc] init];
tableViewController.tableView // This is your newly generated tableview
将 tableView 分配给另一个 parentview 后将调用 viewDidLoad