UINavigation控制器用作模态弹出窗口,然后显示:
XYNavigationController *popoverNavigationController = [self.storyboard instantiateViewControllerWithIdentifier:@"XYNavigationController"];
popoverNavigationController.modalPresentationStyle = UIModalPresentationPopover;
XYCartViewController *cartVC = (XYCartViewController *)popoverNavigationController.topViewController;
[self presentViewController:popoverNavigationController animated:YES completion:nil];
当点击一个按钮时,另一个控制器XYEditViewController以模态方式呈现在模态popoverNavigationController之上。 XYEditViewController的取消按钮调用展开segue:
- (IBAction)unwindFromEdit:(UIStoryboardSegue *)segue {
//a. [segue.sourceViewController dismissViewControllerAnimated:YES completion:nil];
//b. [self.navigationController.topViewController dismissViewControllerAnimated:YES completion:nil];
//c. [(XYCartViewController*)(segue.destinationViewController) dismissViewControllerAnimated:YES completion:nil];
//d.
[(XYNavigationController*)(((XYEditViewController*)(segue.sourceViewController)).presentingViewController) dismissViewControllerAnimated:YES completion:nil];
}
期待取消按钮只关闭顶部模态控制器,并尝试了上面的全部a,b,c,d,它们都解除了top和popover控制器。知道如何在这种情况下只解除顶级控制器吗?
答案 0 :(得分:1)
解除弹出窗口中存在的控制器是一个巨大的问题(即错误),并且在iOS历史记录中这种行为已经多次改变的事实并没有帮助。我相信,基本上你不能使用放松信号。只需让取消按钮在显示的调用[self dismissViewControllerAnimated:]
的视图控制器中执行操作。
(你还必须努力解决用户点击外面 popover的问题;默认情况下,这也可能会解除整个对,我认为这是错误的行为。)