关闭Storyboard中打开的Popover

可能UIPopoverController只能在iPad上使用,而这个问题又是使用iOS5之后出现的,很少人关注这个,我之前也花了不少时间才在一个外国人的blog里面找到解决办法。

这个问题是由于使用storyboard连接之后,直接使用时VC中是不知道这个popover指针的,从而无法通过dismisspopover来关闭,所以想要在程序中控制popover需要从storyboard的segue中找到这个popover的指针:
假如你是从FooAViewController弹出FooBViewController,首先在IB中选中这个popover segue加上一个identifier,如showPopover,如果你需要在FooB中dismiss,那就在FooB中加入属性@property (nonatomic,weak) UIPopoverController *popover;,然后在FooA中的-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender代码段中加入
复制代码
  1. if ([segue.identifier isEqualToString:@"showPopover"]) {
  2.              FooBViewController *bVC=segue.destinationViewController;
  3.              bVC.popover =  [(UIStoryboardPopoverSegue *)segue popoverController];
  4. }



     主要就是用[(UIStoryboardPopoverSegue *)segue popoverController]这句得到popover的指针,之后你自己就可以随意操作了。

PS:建议使用popover的时候尽量用代码,比较好控制,在storyboard中直接使用弹出的话,从普通按钮弹出还好,如果从bar button item点击弹出的话,反复点击是不会自动dismiss的,只会不断的创建新的popover框


原文链接:http://blog.csdn.net/pb8/article/details/7822763



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值