从UITableViewCell访问新的UIViewController

时间:2011-02-08 16:54:38

标签: iphone objective-c uitableview uiviewcontroller uinavigationcontroller

我有一个带有6个Tab Bar项目的Tab Bar应用程序,每个项目都打开一个UITableView。我正在尝试启用每个表,以便在选择表格中的某个项目时打开详细信息视图控制器。

例如,对于第一个ViewController(ViewController1.m),我创建了

DetailView1.xib
DetailViewController1.h
DetailViewController1.m

为了获取ViewController1.m的TableView中的每一行,我理解我必须这样做 使用这种方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

这是我的方法代码,它不会产生任何错误或警告,但是当选择TableViewCell时,没有任何事情发生:

DetailViewController1 *dvController = [[DetailViewController1 alloc] initWithNibName:@"DetailView1" bundle:[NSBundle mainBundle]];
[navController pushViewController:dvController animated:YES];
[dvController release];

这不应该加载DetailView1.xib吗?我使用Tab Bar应用程序模板创建了这个...我相信它默认没有NavigationController。是否有可能在Interface Builder中没有连接?

1 个答案:

答案 0 :(得分:2)

您需要将每个选项卡配置为包含UINavigationController的实例,其中一个视图控制器嵌套在其中。然后在tableView:didSelectRowAtIndexPath:中,您需要将示例中的第二行代码更改为:

[[self navigationController] pushViewController:dvController animated:YES];