【发布时间】:2014-09-18 21:21:22
【问题描述】:
我正在创建一个包含一些 UIBarButton 项目的应用程序,其中一些项目会在按下时启动 UIPopoverController。我希望这可以禁用任何可以与之交互的东西,这主要是默认情况下发生的。但是,我注意到,当弹出框处于活动状态时,同一工具栏中的其他 UIBarButtonItems 仍将处于活动状态。我尝试添加:
[_popOver setPassthroughViews:nil];
在显示之前,但 UIBarButtonItems 仍然可以在显示弹出窗口时被按下。我意识到我可以禁用按钮,但我宁愿不必这样做,因为我必须在每种弹出窗口打开时引入各种不必要的状态。当在弹出框之外选择任何内容(包括其他 UIBarButtonItems)时,是否有任何方法可以关闭弹出框?
重现问题的基本代码:
- (IBAction)rightButtonPressed:(id)sender {
UIViewController *vc = [[UIViewController alloc] init];
_popOver = [[UIPopoverController alloc] initWithContentViewController:vc];
[_popOver setPassthroughViews:nil];
[_popOver presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}
- (IBAction)leftButtonPressed:(id)sender {
NSLog(@"Why am I active while pop-over is visible?");
}
将两个栏按钮项添加到同一个导航栏。
【问题讨论】:
标签: ios objective-c uibarbuttonitem uipopover