UISplitViewController iOS 5.1 导致弹出箭头方向错误
Posted
技术标签:
【中文标题】UISplitViewController iOS 5.1 导致弹出箭头方向错误【英文标题】:UISplitViewController iOS 5.1 causes popover arrow direction error 【发布时间】:2012-04-11 10:15:20 【问题描述】:我的应用在 ios 5.1 之前运行良好。它是一个UISplitviewController
,左侧窗格中有一个UINavigationController
,并根据在该UINavigationController
中所做的选择更新详细信息窗格。
iOS 5.1 特有的从左侧滑入替换弹出框的新功能;它看起来不太好,但它确实有效。
似乎被破坏的是纵向栏按钮的“弹出框”显示。它会导致异常 - 'NSInternalInconsistencyException', reason: '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];
但我仍然遇到同样的错误。有人可以帮忙吗?
【问题讨论】:
【参考方案1】:使用以下委托从详细信息页面显示母版页
- (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;
【讨论】:
以上是关于UISplitViewController iOS 5.1 导致弹出箭头方向错误的主要内容,如果未能解决你的问题,请参考以下文章
iOS (iPad) 在 UISplitViewController 中拖放
UISplitViewController 内的 iOS 13 UITabBarController 未正确折叠
嵌入 UISplitViewController 时,UINavigationBar 中缺少 iOS11 UISearchBar
转换为使用 iOS 8 Popover Segues 时 UISplitViewController 崩溃