我得到了这个uitableview,它来自plist文件 现在我希望能够点击表格单元格并让它执行操作 就像我点击第一行它做A.当我点击第二行它做B.等等直到我的应用程序中有10个功能 到目前为止,我想出了如何让应用程序告诉我我推了什么按钮。但从那里我不知道如何植入一个功能,在点击其中一个单元格时会执行某个操作。我在uiview上制作了uitableview
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//Display a quick alert view to show that this cell was pressed
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Cell Pressed"
message:[NSString stringWithFormat: @"You selected the cell #%i", indexPath.row]
delegate:self cancelButtonTitle:@"Great"
otherButtonTitles:nil];
[alertView show];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
在第一个Cell让我说我有一个测试连接 在第二个单元格中,我有一个状态
-(void)Testconnection { bla bla connect to something }
-(void)Status { bla bla status}
在我的plist文件中我有一个
数组 - >字典 - >字符串称为按钮---测试连接
和
数组 - >字典 - >字符串称为按钮---状态
答案 0 :(得分:1)
尝试类似:
switch (indexPath.row) {
case 0: [self Testconnection]; break;
case 1: [self Status]; break;
default: break;
};
didSelectRowAtIndexPath
中的
答案 1 :(得分:0)
只需添加警报:
[alert setTag:indexPath.row];
并添加到表委托类
- (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { NSString *buttonName = [[buttonArray objectAtIndex:[alertView tag]] valueForKey:@"Button"]; //recognize which one the button //do some stuff }
您还可以在buttonArray中使用数字识别器,并使用“开关”
识别按钮答案 2 :(得分:0)
以下是在点击时,如何在plist中使用与单元格行相对应的名称调用该函数。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//Your alert view code goes here//
NSArray *plist = [NSArray arrayWithContentsOfFile:@"MyPListName"];
NSDictionary *item = plist[indexPath.row];
NSString *buttonName = [item[@"Button"] stringByReplacingOccurrencesOfString:@" " withString:@""];
SEL buttonSelector = NSSelectorFromString(buttonName);
if ([self respondsToSelector:buttonSelector]) {
[self performSelector:buttonSelector withObject:nil];
}
}
您应该将plist
对象移出此函数并将其存储在类级别,以便每次点击一个单元格时都不会创建它。
执行上面的选择线会抛出一个警告,表明它可能会泄漏内存 如果选择器存在,则事先不知道,您可以按照本文中的说明修复或压制它:
performSelector may cause a leak because its selector is unknown