我有一个 UIActionSheet 按钮数量未定。我需要使用委托方法 buttonClickedAtIndex: (或类似的方法)来决定当用户单击按钮时要调用什么方法。
问题是:在不同的情况下,不同的按钮会出现在不同的索引处,我如何决定点击哪个按钮?
一种解决方案是查看按钮的标题并采取行动 - 但这是丑陋的、不可本地化的并且只是不好的做法。
有任何想法吗?
我有一个 UIActionSheet 按钮数量未定。我需要使用委托方法 buttonClickedAtIndex: (或类似的方法)来决定当用户单击按钮时要调用什么方法。
问题是:在不同的情况下,不同的按钮会出现在不同的索引处,我如何决定点击哪个按钮?
一种解决方案是查看按钮的标题并采取行动 - 但这是丑陋的、不可本地化的并且只是不好的做法。
有任何想法吗?
在这种情况下,单个控制器可能会显示多个工作表,但您知道每个工作表上会出现哪些按钮?如果是这样,您可以使用工作表的标签属性来区分它们。
- (IBAction)showEditSheet:(id)sender {
UIActionSheet * sheet = [[UIActionSheet alloc] initWith...];
sheet.tag = 1;
[sheet showInView:self.view];
}
- (IBAction)showDeleteSheet:(id)sender {
UIActionSheet * sheet = [[UIActionSheet alloc] initWith...];
sheet.tag = 2;
[sheet showInView:self.view];
}
- (void)actionSheet:(UIActionSheet *)actionSheet
clickedButtonAtIndex:(NSInteger)buttonIndex {
switch(actionSheet.tag) {
case 1:
// This is the edit sheet
switch(buttonIndex) { ... }
break;
case 2:
// This is the delete sheet
switch(buttonIndex) { ... }
break;
default:
NSAssert(NO, @"Unknown action sheet");
}
}