iOS推视图控制器不工作

时间:2012-12-16 02:03:19

标签: iphone objective-c ios xcode

我有一个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];

}

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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];