2012-02-28 178 views
1

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

在第一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文件。

感谢, 锦

回答

5

你的导航控制器应该是应用程序委托的窗口的根视图控制器,和第一视图控制器应该是导航控制器的根视图控制器,那么你可以把新的控制器上它。

请参阅文档UINavigationControlle r。

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

0

UINavigationController应该是根视图控制器。在当前的代码中,navCont不在视图堆栈中,因此它不起作用。将UINavigationController推入堆栈,并将myFirstViewController作为其根视图控制器,而不是将myFirstViewController推入您的appDelegate。

0

可以模态呈现视图控件没有导航控制器

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

它工作正常。谢谢 – Cam 2012-02-28 17:35:30