我有3个viewcontrollers 让我们说AVC,BVC和CVC
首先,我从AVC展示BVC,然后从BVC展示CVC
因此,层次结构将是AVC-> BVC-> CVC。
当我从BVC解雇CVC时,AVC的viewWillAppear
被触发,我怎样才能防止viewWillAppear
AVC被调用?
由于
更新
首先出现(在AVC中)
BTViewController *BTVC = [self.storyboard instantiateViewControllerWithIdentifier:@"BTVCIns"];
__weak BTViewController *weakBTVC = BTVC;
BTVC.dismissAction = ^{[weakBuyTicketVC dismissViewControllerAnimated:YES completion:nil];};
[BTVC setModalPresentationStyle:UIModalPresentationOverCurrentContext];
[self presentViewController:BTVC animated:YES completion:nil];
第二次出现(在BVC中)
PMViewController *PMVC = [self.storyboard instantiateViewControllerWithIdentifier:@"PMVCIns"];
__block PMViewController *blockPMVC = PMVC;
blockPMVC.dismissAction = ^{[blockPMVC dismissViewControllerAnimated:YES completion:nil];};
blockPMVC.delegate = self;
[self presentViewController:PMVC animated:YES completion:nil];
答案 0 :(得分:0)
来自View Controller Programming Guide for iOS
使用UIModalPresentationFullScreen样式呈现视图控制器时,UIKit通常会在过渡动画完成后删除基础视图控制器的视图。您可以通过指定 UIModalPresentationOverCurrentContext 样式来阻止删除这些视图。当呈现的视图控制器具有允许底层内容显示的透明区域时,您可以使用该样式。
由于您使用UIModalPresentationOverCurrentContext
,iOS认为BVC可能具有暴露AVC的透明区域,因此当BVC出现时AVC也可能出现,因此调用viewWillAppear
。