UIActionSheet动态选项用法

        UIActionSheet相信大家都用过,其应用场景还是比较多的,像App中设置用户头像时,选择从相册或拍照来获取头像。还有其他很多场景就不一一列举了。凡此种种都有一个前提条件就是,我们已经知道了有多少个可供选择的项。此时我们就可以用下面的初始化方法去实现:

     UIActionSheet(title: "请选择您的婚姻状况", delegate: self, cancelButtonTitle: "取消", destructiveButtonTitle: nil, otherButtonTitles: "已婚", "未婚")
           那么问题来了,当我不知道otherButtonTitles到底有多少项时,或者说这个选项数量不定,动态变化的,怎么办?好在天无绝人之路,UIActionSheet还是为我们提供了解决方案的,因为这个很简单,直接上代码。

    //假设变量nations是从服务器获取的所有名族的列表,里面的数量不定
    let actionSheet: UIActionSheet = UIActionSheet(title: "请选择您的名族", delegate: self, cancelButtonTitle: "取消", destructiveButtonTitle: nil, otherButtonTitles: nations[0])     //先传入第一个元素
    for var i: Int = 1; i < nations.count; i++ { //此处忽略已经加入的第一个元素,然后追个元素加入即可
        actionSheet.addButtonWithTitle(nations[i])
    }
        iOS8以后,UIActionSheet已被UIAlertController替代,不建议使用。因此有必要介绍一下UIAlertController在此种情况下的用法。

        

    let nations: Array<String> = ["汉族", "壮族", "哈尼族", "彝族"]
    let alertController = UIAlertController(title: "请选择您的名族", message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)<span style="white-space:pre">	</span>//以ActionSheet风格展示UIAlertController
    let cancelAction: UIAlertAction = UIAlertAction(title: "取消", style: UIAlertActionStyle.Cancel, handler: nil)
    alertController.addAction(cancelAction)   //增加取消按钮
    for var i: Int = 0; i < nations.count; i++ {//逐条增加选择项
        let defaultAction: UIAlertAction = UIAlertAction(title: nations[i], style: UIAlertActionStyle.Default, handler: nil)
        alertController.addAction(defaultAction)
    }
    self.presentViewController(alertController, animated: true, completion: nil)    //展示ActionSheet

        ActionSheet中动态添加选项就介绍至此。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值