iPhone:处理多个动作表

时间:2010-08-13 06:27:47

标签: iphone uiview uiactionsheet

我的一个视图使用了3个动作表,这些动作表来自单击各种按钮时。由于我只有一个- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex方法,知道我正在处理哪个操作表的最佳方法是什么?选择我的任何actionSheets上的第一个按钮就是buttonIndex 0.所以我需要知道如何知道来自哪个actionSheet调用。

想法?

4 个答案:

答案 0 :(得分:10)

您需要在创建操作表时设置标记,并在操作表方法中对其进行测试。

答案 1 :(得分:1)

我有同样的问题,我只是根据行动表的标题设置条件:

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {


if (actionSheet.title == @"present action sheet A") {

//do some stuff

}
if (actionSheet.title == @"present action sheet B") {

//do some stuff

}

像魅力一样工作,不确定动作表是否有标签,但也许我错了。

答案 2 :(得分:0)

使用3级操作表的类级别变量。然后,您可以比较actionSheet方法中的操作源。

答案 3 :(得分:0)

创建操作时设置标记

UIActionSheet * actionSheet = 
[[UIActionSheet alloc] 
initWithTitle:@"My title" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil  otherButtonTitles:@"Option1",@"Option2", nil];

actionSheet.tag = 1100;





-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex

{

if(actionSheet.tag == 1100)
{

    switch (buttonIndex) 
    {
        case 0: 
        {  
        }
           break;
        case 1:
        {

        }
            break;
        default:
            break;
    }  
}  
}