0

我有一个 uitabbarcontroller 设置为窗口的根视图。选项卡栏中的选项卡之一设置为 uitableviewcontroller 的子类。我要做的是在触摸其中一行时显示详细信息视图,因此我实现了

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

if (!detailViewController) {        
detailViewController = [[ItemDetailViewController alloc] init]; 

}   
[detailViewController setEditingArray:   
[list objectAtIndex:[indexPath row]]];  
[[self navigationController] pushViewController:detailViewController animated:YES];

}

在我的表控制器中,但是当我选择该行时,我的详细视图不会弹出。我添加了 nslog 以查看该函数是否触发 - 确实如此,但我的详细视图仍然没有显示。有任何想法吗?谢谢。

4

2 回答 2

1

您没有导航控制器([self navigationController]正在返回nil)。不要将表视图控制器作为选项卡的根,而是将选项卡的根作为包含表视图控制器的导航控制器。您现在将能够从表视图控制器推送细节控制器。

于 2012-12-16T02:06:55.500 回答
1

tableViewController应该放在NavigationController一个. 我猜你是tableView在标签栏中创建的。

TableViewControllerSubclass* table = [[TableViewControllerSubclass alloc] init];

UINavigationController* tableNav = [[UINavigationController alloc] initWithRootViewController:table];

mainController = [[UITabBarController alloc] init];
mainController.viewControllers = [NSArray arrayWithObjects:tableNav,..., nil];
于 2012-12-16T03:26:04.110 回答