PushViewController不做任何事情

时间:2012-02-28 16:26:57

标签: ios uitableview pushviewcontroller

这是我第一次尝试使用UINavigationController实现从tableView单元格到另一个tableView的导航,但它对我不起作用。 我没有使用nib文件,我有一个简单的tableView,我在我的应用程序中的模态对话框中显示它,它工作正常,现在我将disclosureInidcator添加到其中一个单元格,以使用户启用从固定的选择另一个列表中可用的选项数(tableView)。为此,我有另一个类,使第二个tableView。问题是现在从第一个tableview中的单元格(包含泄露图标)导航到第二个tableView没有做任何事情,没有错误,没有什么。我想我设置导航控制器的方式是错误的,代码不属于委托,也不属于第二类的数据源。

在First TableView中的方法:didSelectRowAtIndexPath我试图抓住那一行,然后像这样调用第二个tableView:

 mySecondViewController *secondVC = [[[mySecondViewController alloc] initWithStyle:UITableViewStyleGrouped ]    autorelease];
  UINavigationController *navCont = [[UINavigationController alloc] initWithRootViewController: self];//not sure the first controller should act as the root controller?
 [navCont  pushViewController:secondVC animated:YES]; //it does nothing, no error,...

第二个tableViewcontroller类包含所有委托和数据源方法,以及初始化方法:

 - (id)initWithStyle:(UITableViewStyle)style 
 {
     if ((self = [super initWithStyle:style])) {

    }
    return self;
 }

  and declared in interface as:
 @interface stockOptionViewController : UITableViewController {

}

我尝试使用viewDidLoad,但没有帮助。

请帮助我,因为我没有任何线索,所有找到的示例代码都是基于使用nib文件。

感谢, 鉴

3 个答案:

答案 0 :(得分:5)

您的导航控制器应该是应用委托窗口的根视图控制器,第一个视图控制器应该是导航控制器的根视图控制器,然后您可以将新控制器推送到它上面。

请参阅UINavigationControlle r的文档。

目前,您正在创建一个导航控制器,但没有把它放在任何地方,所以要求它推动新的视图控制器是没有意义的。你有正确的代码,只是没有正确的顺序。

答案 1 :(得分:0)

UINavigationController应该是根视图控制器。在当前代码中,navCont不在视图堆栈上,因此不起作用。不要在appDelegate中推送myFirstViewController,而是将UINavigationController推送到堆栈并添加myFirstViewController作为其根视图控制器。

答案 2 :(得分:0)

您可以在没有导航控制器的情况下以模态方式显示视图控件

mySecondViewController *secondVC = [[[mySecondViewController alloc] initWithStyle:UITableViewStyleGrouped ]    autorelease];
[self presentModalViewController:secondVC animated:YES];