我有一個視圖控制器,其中有一個按鈕和一個窗口。ChildViewController視圖進入然後消失
通過按下按鈕,窗口中的視圖應該改變。
窗口中的視圖是另一個ViewController及其視圖。
按下按鈕時,所有的方法viewDidLoad
,viewWillAppear
,viewDidAppear
運行。
然而,經過viewDidAppear
運行,該視圖中消失,而不運行viewWillDisappear
和viewDidDisappear
的觀點確實出現了前一秒鐘出現這種情況,和它的所有元素都intialized,如果我暫停與運行調試窗口,以及任何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");
}
實際調用currentController removeFromParentViewController一個例子是不是我需要的,因爲我想保持電流控制器(因爲它是永久性的)和新的控制器只是換入點擊按鈕 –
不用'transitionFromViewController'就可以做到這一點,因爲這通常會取代現有的。您可以使用普通的UIView'animateWithDuration'動畫在您的新ViewController中進行動畫製作,而不是使用轉換方法。 –