cir*_*ego 5 objective-c viewdidload ios
我在故事板文件中设置了一个容器视图,但我想在设置一些属性后以编程方式嵌入视图控制器。这是我在父 VC 的 viewDidLoad 中的代码:
_workoutVC = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"entryTableVC"];
_workoutView = _workoutVC.tableView;
[self addChildViewController:_workoutVC];
[_workoutVC.tableView setFrame:_container.bounds];
[_container addSubview:_workoutView];
Run Code Online (Sandbox Code Playgroud)
然而,子进程中的viewDidLoad并不是随时被调用的。当我运行模拟器时,我的容器视图是空白的。我已经在调试器中检查过我的属性都不是nil.
第一次访问viewDidLoad:该属性时会调用该方法。view我假设在你的情况下view== tableView。如果不是,你就得调整loadView你孩子VC的方法了。
- (void)loadView {
//create your table view here
//...
self.view = self.tableView;
}
Run Code Online (Sandbox Code Playgroud)
然后只需使用viewproperty 而不是tableView.
_workoutView = _workoutVC.view;
Run Code Online (Sandbox Code Playgroud)
编辑:
完整的代码是:
_workoutVC = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"entryTableVC"];
_workoutView = _workoutVC.view;
[self addChildViewController:_workoutVC];
[_workoutView setFrame:_container.bounds];
[_container addSubview:_workoutView];
Run Code Online (Sandbox Code Playgroud)