iPhone SDK - UIActionSheet - 动态按钮标题

har*_*ynn 21 iphone objective-c

我在应用程序中有一个要求,我需要能够动态添加otherButtonTitles,这取决于用户在设置中指定的一些BOOL开关.但是,我似乎无法弄清楚如何在UIActionSheet初始化中执行此操作.我试图传递一个NSString数组(NSString [2]),还有一个没有运气的NSArray.

非常感谢任何帮助.

jha*_*ott 58

我找到的最简单的方法是创建没有按钮的操作表,包括没有取消或破坏性按钮:

UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:@"Dynamic"
                                                        delegate:self
                                               cancelButtonTitle:nil
                                          destructiveButtonTitle:nil
                                               otherButtonTitles:nil];
Run Code Online (Sandbox Code Playgroud)

然后根据需要添加一些按钮:

if(buttonX)
{
    [actionSheet addButtonWithTitle:@"Button X"];
}
if(buttonY)
{
    [actionSheet addButtonWithTitle:@"Button Y"];
}
if(buttonZ)
{
    [actionSheet addButtonWithTitle:@"Button Z"];
}
Run Code Online (Sandbox Code Playgroud)

然后最后在结尾添加取消按钮并设置取消按钮索引:

[actionSheet addButtonWithTitle:@"Cancel"];
actionSheet.cancelButtonIndex = actionSheet.numberOfButtons - 1;
Run Code Online (Sandbox Code Playgroud)

当然,您可以通过这种方式添加取消按钮和/或破坏性按钮.


Vla*_*mir 6

您可以使用addButtonWithTitle:方法向(已初始化的)UIActionSheet添加新按钮.您还可以创建自定义UIButtons,并将它们作为子视图添加到UIActionSheet的视图中