我的应用在 iOS 5.1 之前运行良好。它是一个 UISplitviewController
,在左侧 Pane 中有一个 UINavigationController
,并根据在该 UINavigationController
中所做的选择更新详细信息 Pane 。
iOS 5.1 特有的弹出窗口从左侧滑入的新替换功能;它看起来不太好,但它确实有效。
似乎被破坏的是纵向栏按钮的“弹出窗口”的显示。它导致异常 - 'NSInternalInconsistencyException',原因:'Unknown direction passed to _popoverViewSizeForContentSize:arrowDirection:'
我试图重写显示弹出框的方法,如下所示:
-(void)splitViewController:(UISplitViewController *)svc popoverController:(UIPopoverController *)pc willPresentViewController:(UIViewController *)aViewController
{
[self.popoverController presentPopoverFromBarButtonItem:self.masterPopoverButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
但我仍然得到同样的错误。谁能帮忙?
最佳答案
使用下面的委托(delegate)从详细信息页面显示母版页
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:
(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
{
barButtonItem.title = NSLocalizedString(@"Master", @"Master");
[self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
self.masterPopoverController = popoverController;
}
- (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;
}
关于ios - UISplitViewController iOS 5.1 导致popover箭头方向错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10103972/