iPhone:处理多个操作表
Posted
技术标签:
【中文标题】iPhone:处理多个操作表【英文标题】:iPhone: Handle multiple action sheets 【发布时间】:2010-08-13 06:27:47 【问题描述】:我的一个观点使用了 3 个操作表,这些操作表来自单击各种按钮时产生的。因为我只有一个- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
方法,所以知道我正在处理哪个操作表的最佳方法是什么?选择我的任何 actionSheet 上的第一个按钮将是 buttonIndex 0。所以我需要知道如何知道来自哪个 actionSheet 调用。
想法?
【问题讨论】:
【参考方案1】:您需要在创建操作表时设置标签,并在您的操作表方法中对其进行测试。
【讨论】:
【参考方案2】:我遇到了同样的问题,我只是根据操作表的标题设置了一个条件:
在
- (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
像魅力一样工作,不确定操作表是否有标签,但也许我错了。
【讨论】:
是的。我认为标签方法更干净。【参考方案3】:对 3 个操作表使用类级别变量。然后就可以在actionSheet方法中比较action的来源了。
【讨论】:
【参考方案4】:在创建动作时设置标签
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;
【讨论】:
以上是关于iPhone:处理多个操作表的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 iPhone Xcode 中处理多个 NSURLConnection?