所有
我有一个表格视图,当我用字符串X和字符串Y点击单元格时,我需要做出不同的反应.X会带你到X View(XViewController),Y会带你到Y View(YViewController)等等。插入此if语句的最佳位置在哪里,如何将其转换为正确的视图?
由于
答案 0 :(得分:5)
您想要实施
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
然后,您可以访问相关单元格以读取字符串并显示相应的视图控制器。
例如:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
if ([cell.text isEqualToString:stringX]) {
XViewController *xvc = [[XViewController alloc] init];
[self presentModalViewController:xvc animated:YES];
[xvc release];
} else {
YViewController *yvc = [[YViewController alloc] init];
[self presentModalViewController:yvc animated:YES];
[yvc release];
}
然后,在推送任何viewController时,您可以使用
将其关闭[self dismissModalViewControllerAnimated:YES];
答案 1 :(得分:2)
方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
你会在哪里做到这一点。然后,您将从该索引路径中获取单元格:
UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
最后,检查字符串。代码应如下所示:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;{
UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
if([cell.text isEqualToString:X]){
// load view X and push onto the view controller
}
else{
// load view Y and push onto the view controller
}
}
如果使用自定义单元格,只需查看自定义属性而不是.text。
你应该看看这里:
Apple Navigation Controller Reference
这很简单。只需分配新的视图控制器,然后将其推送到导航控制器:
NewViewController * newView = [[NewViewController alloc] init];
[self.navigationController pushViewController:newView animated:YES];
[newView release];