问题描述
我有这样的VC结构
UIPageViewController-> detailViewController-> popoverviewcontroller
popoverviewcontroller通过放宽的设置被解雇,使我们回到detailviewcontroller
现在,在关闭弹出窗口之后,我想刷新pagecontroller上的页面,因为用户执行的操作已更改了数据。
所以我尝试将这段代码放在pageViewcontroller
- (IBAction) unwindFromPopup:(UIStoryboardSegue*)unwindSegue{
[self refreshPages];
UIAlertController * alertController = [UIAlertController alertControllerWithTitle:@"alert" message:@"this should appear" preferredStyle:UIAlertControllerStyleAlert];
[self presentViewController:alertController animated:YES completion:nil];
}
我尝试将上面的代码移到详细信息视图控制器,但是我没有得到任何结果。没有错误或任何东西,只是完全没有警报。我在segue中设置了一个断点,然后调用了代码。但是没有警报。
我考虑将代码放入各自的viewDidAppear方法之一中,但是由于某种原因,我关闭弹出窗口后,pageviewcontroller或detailview控制器都没有调用viewDidAppear。
我需要发布完整的代码,还是我的问题在包含的详细信息中显而易见?
解决方法
谢谢-根据您的评论...很久以前,在遥远的iOS版本中,我执行了所有可能的任务,并记录了何时调用该调用,并列出了我基于其回答的内容。我必须承认,如今,使用演示控制器代表可以完成大部分工作。
无论如何,当您弹出或模态显示控制器时,为回答您的问题,正在显示的控制器 将在完成后向beingPresented
和beingDismissed
发出消息并且您也许可以将其用于尝试做的事情。
当您推一个控制器时,它会在显示时提示isMovingToParentViewController
,并在关闭时显示isMovingFromParentViewController
,再次显示该控制器。
返回到弹出窗口...它将在显示的VC中发送消息prepareForSegue
,在显示的VC中发送消息viewWillAppear
和viewDidAppear
,并且在关闭时将仅发送消息 viewWillDisappear
和viewDidDisappear
在出现的VC中,因此出现了问题。至少它还会像上面提到的那样向beingDismissed
发送消息,如果可以使用的话,我真的很高兴。