我有一个视图控制器,其中有一个按钮和一个窗口。
通过按下按钮,窗口中的视图应该会改变。
窗口中的视图是另一个 ViewController 及其视图。
当按下按钮时,所有的viewDidLoad
, viewWillAppear
,方法都会viewDidAppear
运行。
然而,viewDidAppear
运行后,视图消失,没有运行viewWillDisappear
和viewDidDisappear
在这种情况发生之前,视图确实出现了一秒钟,并且它的所有元素都被初始化,如果我用调试窗口暂停运行,并且 po 任何 UI 元素,它们不为空。
为什么会发生这种情况?
这是我添加视图的代码:
if(![self.childViewControllers containsObject:_detailsContainer]){
_detailsContainer.view.frame = self.scrollView.bounds;
[_detailsContainer willMoveToParentViewController:self];
[self addChildViewController:_detailsContainer];
UIViewController *currentViewController = [_mainSource viewControllerForContentAtIndex:self.pageIndex];
[self transitionFromViewController:currentViewController toViewController:_detailsContainer duration:0.2 options:UIViewAnimationOptionTransitionCrossDissolve animations:NULL completion:^(BOOL finished){
[_detailsContainer didMoveToParentViewController:self];
}];
}
这是我的viewWillAppear
和viewDidAppear
子视图控制器:
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if(self.isEditingDetails){
[self setUserDetails:[self.userSettings getUserDetails]];
}
}
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
LogInfo(@"details view did appear");
}