如何通过数组传递而不是使用varlist来创建UIActionSheet'otherButtons'?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (111)

我有一个字符串数组,我想在UIActionSheet上使用按钮。不幸的是,在方法调用中的otherButtonTitles:参数需要一个可变长度的字符串列表,而不是一个数组。

那么我怎样才能将这些标题传递给UIActionSheet?我见过的解决方法是将nil传递给otherButtonTitles,然后使用addButtonWithTitle:来分别指定按钮标题。但是,这有一个问题,将“取消”按钮移到UIActionSheet的第一个位置,而不是最后一个; 我希望它是最后一个。

有没有办法

1)传递数组来代替字符串的变量列表?

2)将取消按钮移动到UIActionSheet的底部?

谢谢。

提问于
用户回答回答于

我已经写好啦,你只需要,,只需添加它一个按钮即可:

NSArray *array = @[@"1st Button",@"2nd Button",@"3rd Button",@"4th Button"];

    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Title Here"
                                                             delegate:self
                                                    cancelButtonTitle:nil
                                               destructiveButtonTitle:nil
                                                    otherButtonTitles:nil];

    // ObjC Fast Enumeration
    for (NSString *title in array) {
        [actionSheet addButtonWithTitle:title];
    }

    actionSheet.cancelButtonIndex = [actionSheet addButtonWithTitle:@"Cancel"];

    [actionSheet showInView:self.view];
用户回答回答于

有一点需要注意:[actionSheet addButtonWithTitle:]返回该按钮的索引,所以为了安全和和代码整洁,你可以这样做:

actionSheet.cancelButtonIndex = [actionSheet addButtonWithTitle:@"Cancel"];

所属标签

可能回答问题的人

  • 人生的旅途

    10 粉丝484 提问6 回答
  • 无聊至极

    4 粉丝504 提问6 回答
  • 骑牛看晨曦

    5 粉丝522 提问5 回答
  • Richel

    8 粉丝0 提问4 回答

扫码关注云+社区

领取腾讯云代金券