使用数组填充操作表

时间:2009-03-19 21:53:10

标签: iphone

我的iphone应用程序中有一个动作表弹出窗口。我想用数组中的字符串填充它而不是预定值。

我在网上找不到任何东西!也许动作表不适合使用?

现在我正在使用它来构建它:

roomspopup = [ [ UIActionSheet alloc ]  
                  initWithTitle: alertname  
                  delegate: self 
                  cancelButtonTitle: @"Cancel" 
                  destructiveButtonTitle: nil 
                  otherButtonTitles: @"Kitchen", "Dining Room", nil ];

但是,我不想用“厨房”和“餐厅”来填充数组。阵列的大小(即房间数)不是固定的数字。

3 个答案:

答案 0 :(得分:14)

@JimTrell

解决这个问题的方法是在没有取消按钮的情况下初始化UIActionSheet,并在添加其他按钮后添加此取消按钮。

首先使用一堆nil来初始化工作表:

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

然后使用addButtonWithTitle:循环遍历数组,最后添加取消按钮并设置其索引:

[actionSheet addButtonWithTitle:@"Cancel"];
[actionSheet setCancelButtonIndex:[yourArray count]];

答案 1 :(得分:7)

你不能在一行中完成。您必须使用一组空按钮调用initWithTitle,然后使用addButtonWithTitle:将其他按钮添加到循环中。

答案 2 :(得分:0)

我可以使用以下代码在底部设置取消按钮:

anActionSheet = [[UIActionSheet alloc] initWithTitle:@"Change A/C" delegate:self
  cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil, nil];

for (int i = 0; i < [arraylist count]; i++)    
  [anActionSheet addButtonWithTitle:[arraylist objectAtIndex:i]];

anActionSheet.cancelButtonIndex = [arraylist count];    
[anActionSheet addButtonWithTitle:@"Cancel"];