self.navigationController pushViewController无法正常工作

XMa*_*all 10 iphone ios4 ios

我有一个单一的View应用程序UIViewController.然后我UITableViewController通过IB 添加一个,我试图UITableViewController通过按钮显示UIViewController(我的主视图).我按下按钮(IBAction)包含以下代码,我试图通过该代码推送我的UITableViewController视图并显示它:

DataViewController *dataController = [[DataViewController alloc] initWithNibName: @"DataViewController" bundle:nil];
[self.navigationController pushViewController:dataController animated:YES];
[dataController release];
Run Code Online (Sandbox Code Playgroud)

DataViewController根本没有被推入堆栈并显示,我也检查过上面的代码,self.navigationController=nil 可能这是问题的根源.如果是这样,如何纠正呢?

请帮忙.

小智 13

UINavigationController *navCtrlr = [[UINavigationController alloc]initWithRootViewController:yourfirstviewController];
[self.window setRootViewController:navCtrlr];
navCtrlr.delegate = self;
navCtrlr.navigationBarHidden = YES;
Run Code Online (Sandbox Code Playgroud)

创建导航控制器appdelegate.m然后您可以导航到任何uiviewcontroller


Sco*_*bes 12

你需要实际创建一个UINavigationController.该navigationController属性告诉您DataViewController当前是否在一个UINavigationController层次结构中; 如果不是(如本例所示),则navigationController属性返回nil.

  • `UINavigationController`是一个"控制器控制器",它旨在允许您推送和弹出控制器并管理视图层次结构.您可能希望观看[斯坦福大学"iTunes U"播客](http://itunes.apple.com/us/podcast/cs193p-student-final-projects/id395605774?i=90218598)的讲座6和7深入解释如何在您的应用程序中使用`UINavigationController`. (4认同)