这是我第一次尝试使用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文件。
感谢, 鉴
答案 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];