self.navigationController pushViewController无法正常工作

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

 DataViewController *dataController = [[DataViewController alloc] initWithNibName: @"DataViewController" bundle:nil]; [self.navigationController pushViewController:dataController animated:YES]; [dataController release]; 

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

请帮忙。

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

 UINavigationController *navCtrlr = [[UINavigationController alloc]initWithRootViewController:yourfirstviewController]; [self.window setRootViewController:navCtrlr]; navCtrlr.delegate = self; navCtrlr.navigationBarHidden = YES; 

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