如何通过单击栏按钮关闭弹出框
Posted
技术标签:
【中文标题】如何通过单击栏按钮关闭弹出框【英文标题】:how to dismiss the popover with the bar button click 【发布时间】:2013-02-26 13:18:03 【问题描述】:嘿,我有一个我必须在其中显示弹出框的地方。我可以轻松做到这一点。当显示其他类的弹出窗口时。此弹出窗口中有一个带有条形按钮“完成”的标题栏。我想通过单击完成按钮来关闭弹出框。
如何使用完成按钮关闭弹出框?
谢谢
【问题讨论】:
【参考方案1】:您是否尝试过寻找解决方案?
-(void) onDoneButtonClick
[popover dismissPopoverAnimated:YES];
【讨论】:
谢谢乔治 我试过这个 UIPopoverController* popOverController = [[UIPopoverController alloc]init]; if ([popOverController isPopoverVisible]) [popOverController dismissPopoverAnimated:YES];但它会崩溃并给出错误 -[UIPopoverController init] 不是有效的初始化程序。您必须调用 -[UIPopoverController initWithContentViewController:]。'【参考方案2】:- (void)dismissPopoverAnimated:(BOOL)animated
是UIPopoverController
类的方法。为了以编程方式关闭弹出框,您必须自己保留对呈现的UIPopoverController
的引用。
这是一个可能的解决方案:
在弹出框加载的视图控制器中,定义一个属性。
@interface MyViewController: UIViewController
@property (nonatomic, strong) UIPopoverController *popover;
@end
在 segue 到 popover 执行之前,存储 segue 的 popover 控制器。
- (void)prepareForSegue:(UIStoryboardPopoverSegue *)segue sender:(id)sender
if ([segue.identifier isEqualToString:@"mySegue"])
MyViewController *dvc = segue.destinationViewController;
dvc.popover = [segue popoverController];
当按钮被点击时,关闭弹出框。
- (void)onButtonClick:(id)sender
[self.popover dismissPopoverAnimated:YES];
【讨论】:
【参考方案3】:在简单的popoverobj中并在按钮事件上使用简单的方法。
[popoverobj dismissPopoverAnimated:YES];
【讨论】:
以上是关于如何通过单击栏按钮关闭弹出框的主要内容,如果未能解决你的问题,请参考以下文章