进入ios8 后使用swift,在使用到UIAlertController(ActionSheet)时适配ipad时挂掉的问题解决方案

进入iOS8后,uikit提供了UIAlertController以替代7中的actionsheet和alertView.因为其在8中会导致诸多ui上的问题。在使用该类的过程中,在ipad上会导致没有设定弹出位置而挂掉。在国外论坛看到如下解决方案。证实有效。特此记录。

var actionSheet:UIAlertController = UIAlertController(title: "title")", message: "", preferredStyle: UIAlertControllerStyle.ActionSheet)


actionSheet.addAction(UIAlertAction(title: title as String, style: UIAlertActionStyle.Destructive, handler: {

                    handle in

                }))

     //如果是在ipad上面弹出actionsheet,则需要指定其弹出的位置,不然在弹出时崩掉。这个在官方文档中未作说明。

    if IsIpad() {

                actionSheet.modalPresentationStyle = UIModalPresentationStyle.Popover

                var popPresenter:UIPopoverPresentationController = actionSheet.popoverPresentationController!

                popPresenter.sourceView = self.addToButton

                popPresenter.sourceRect = self.addToButton!.bounds

                self.viewController?.presentViewController(actionSheet, animated: true, completion: {

                })

                

            }else{

                self.viewController?.presentViewController(actionSheet, animated: true, completion: {})

            }


另附上帖子地址,以供参考:

http://stackoverflow.com/questions/24224916/presenting-a-uialertcontroller-properly-on-an-ipad-using-ios-8

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值