not*_*oux 11 uiviewcontroller ios
我做了一个简单的测试,以了解更多有关包含视图控制器
我有一个视图控制器,我使用两个按钮的动作添加/删除了一个视图控制器:
- (IBAction)myInfoAddAction:(id)sender {
profileViewController = [[ProfileViewController alloc] init];
[self addChildViewController: profileViewController];
UIView *__view = profileViewController.view;
[self.view addSubview: __view];
[profileViewController didMoveToParentViewController: self];
}
- (IBAction)myInfoRemoveAction:(id)sender {
[profileViewController willMoveToParentViewController: nil];
[profileViewController.view removeFromSuperview];
[profileViewController removeFromParentViewController];
}
Run Code Online (Sandbox Code Playgroud)
类ProfileViewController扩展UIViewController和覆盖willMoveToParentViewController以及didMoveToParentViewController方法
-( void)willMoveToParentViewController:(UIViewController *)parent
{
[super willMoveToParentViewController: parent];
NSLog(@"willMoveToParentViewController -> %@", self);
}
-( void) didMoveToParentViewController:(UIViewController *)parent
{
[super didMoveToParentViewController: parent];
NSLog(@"didMoveToParentViewController -> %@", self);
}
-( void)viewWillAppear:(BOOL)animated
{
NSLog(@"viewWillAppear -> %@", self);
}
-( void)viewDidDisappear:(BOOL)animated
{
NSLog(@"viewDidDisappear -> %@", self);
}
Run Code Online (Sandbox Code Playgroud)
当我添加视图控制器时,我得到以下日志:
willMoveToParentViewController -> <ProfileViewController: 0x8c52ea0>
viewWillAppear -> <ProfileViewController: 0x8c52ea0>
didMoveToParentViewController -> <ProfileViewController: 0x8c52ea0>
didMoveToParentViewController -> <ProfileViewController: 0x8c52ea0>
Run Code Online (Sandbox Code Playgroud)
当我删除视图控制器时:
willMoveToParentViewController -> <ProfileViewController: 0x8c52ea0>
didMoveToParentViewController -> <ProfileViewController: 0x8c52ea0>
viewDidDisappear -> <ProfileViewController: 0x8c52ea0>
didMoveToParentViewController -> <ProfileViewController: 0x8c52ea0>
Run Code Online (Sandbox Code Playgroud)
我想知道为什么didMoveToParentViewController被调用两次?
谢谢!
小智 9
我也有同样的问题.此外,我发现当我在viewDidLoad中添加子视图控制器时,我只有一条消息.我通过删除调用来修复它[super didMoveToParentViewController:].我认为这个问题与在按钮的回调中添加子视图控制器有关,但我不确定为什么这会导致问题.
| 归档时间: |
|
| 查看次数: |
2766 次 |
| 最近记录: |