我的iPad应用使用标准的UISplitViewController。我的问题是,如果我
prepareForSegue
设置self.splitViewController.delegate = newViewDetailViewController;
那么 - 我如何确保在willHideViewController
上调用viewDidLoad
?
我可以检测到方向是什么,但我仍然需要
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
现在我按照建议here跟踪Apples MultipleDetailView示例。
但是因为我也有多个MasterControllers,所以每次在我的masterview控制器上按下一个级别时,存储(一个静态)指针到popoverbutton项并设置它是一件非常麻烦的事。
希望有人能够很好地解决这个问题: - )
答案 0 :(得分:3)
我遇到了同样的问题,最终弄明白了什么。 AppDelegate中有一些代码可以执行一些初始化。它位于didFinishLaunchingWithOptions方法中。这是代码:
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;
它们对于操作分割视图控制器都很重要,但最后一行是获取方法的最后一行是最后一行。我正在构建一个通用的应用程序,但这是缺失的。为确保它不会影响我的iPhone端,我将其包装在UI_USER_INTERFACE_IDIOM检查中。