我有一个UISplitViewControllerDelegate
,当UISplitViewController旋转到横向时,它正在接收UIBarButtonItem
和UIPopoverController
。实现了以下委托方法:
- (void)splitViewController:(UISplitViewController *)svc
willHideViewController:(UIViewController *)aViewController
withBarButtonItem:(UIBarButtonItem *)barButtonItem
forPopoverController:(UIPopoverController *)pc
{
barButtonItem.title = self.title;
myViewController.splitViewBarButtonItem = barButtonItem;
myViewController.splitViewPopoverController = pc;
}
当 myViewController 设置 barButtonItem 时,它将被放置在视图导航栏中的 leftBarButtonItem 中。 我的问题是,当点击 leftBarButtonItem 时,myViewController有另一个popover,应该被解雇。解雇其他popover不是问题,但问题是,当我点击 barButtonItem 时,我不知道。
我该如何做到这一点?
答案 0 :(得分:0)
将栏按钮项添加到UIPopOverController的passThroughViews属性中。
yourPopOverController.passThroughViews = [NSArray arrayWithObject:yourBarButton];
这样就可以了。您可以向此阵列添加多个视图。
答案 1 :(得分:0)
我找到了使用splitViewController:popoverController:willPresentViewController:
方法的解决方案。
- (void)splitViewController:(UISplitViewController *)svc
popoverController:(UIPopoverController *)pc
willPresentViewController:(UIViewController *)aViewController {
[myViewController dismissPopovers];
}
myViewController 中的dismissPopovers
方法用于隐藏弹出窗口,如果它们被显示。