我根据Master-Detail应用程序设置了一个故事板,将详细视图嵌入到导航控制器中,并添加一个新的表视图控制器对象,我将用它作为第二个详细视图控制器。
然后我使用以下代码推送新的详细视图控制器(而不是segue,因为我同时推动根视图和详细视图控制器。仅显示详细视图代码。)
// Push the detailView view controller:
NewClass *newViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"test"];
newViewController.navigationItem.hidesBackButton = YES;
self.splitViewController.delegate = newViewController;
[self.detailViewController pushViewController:newViewController animated:YES];
这非常有效,除了在推送之前或之后从不调用splitView委托方法。如果我在纵向模式下执行此操作,则在推送detailViewController之后,下拉masterView弹出按钮的按钮不显示UNTIL我旋转到横向模式然后再回到纵向模式。
如何调用willHideViewController / willShowViewController拆分视图控制器委托方法或手动调用它们?
答案 0 :(得分:3)
因此,根据我的发现,它不会调用方法,因为方向没有改变。
你需要做的是从呈现视图控制器传递按钮,因为它已经像这样绑定到popover:
if(self.navigationItem.leftBarButtonItem != nil) {
newViewController.navigationItem.leftBarButtonItem = self.navigationItem.leftBarButtonItem;
}
// Push the newViewController