不幸的是,当你的 ipad 处于纵向模式时,你有一个你的主人的弹出框,它不是其他形状的主人。这意味着您正在使用此弹出框作为presentingViewController来呈现模式,因此当您从纵向移动到横向时,该方法splitViewController:willShowViewController
将使您的弹出框为零,如您所见:
- (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
// Called when the view is shown again in the split view, invalidating the button and popover controller.
[self.navigationItem setLeftBarButtonItem:nil animated:YES];
self.masterPopoverController = nil;
}
因此,我理解您的模态与它一起使用是可以接受的。所以,有了这个你就明白了为什么当你performSegueWithIdentifier:
在你的 splitViewController 上调用你的动作时它不会发生,你的模态不再与你的弹出框连接。
所以你可能会问为什么当你从横向移动到纵向时它不会发生......原因是splitViewController:willHideViewController
,它隐藏了 viewController 它没有删除它,所以你的模态总是连接的。
因此,不幸的是,没有解决方案,您将不得不通过代码执行操作..
我希望它有所帮助,
罗伯托