App中使用TabBarController的导航控制器

时间:2014-06-17 20:54:37

标签: ios objective-c uitableview uinavigationcontroller uitabbarcontroller

我正在尝试使用两个视图创建一个tableview,tableview控制器和otherView控制器。 tableview需要导航控制器才能在单击单元格时进入第三个视图。我尝试在AppDelegate.m中使用下面的代码,但它只是用导航控制器创建了tableview。关于如何编辑这个以使tabview工作的任何建议?谢谢!

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.

AJBTableViewController *masterViewController = [[AJBTableViewController alloc] initWithNibName:nil bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];

_mainTabBar.viewControllers = [NSArray arrayWithObjects:_navigationController, otherViewController, nil];

[_window addSubview:_mainTabBar.view];

return YES;
}

3 个答案:

答案 0 :(得分:1)

标签栏控制器应该是应用程序的根视图控制器,而不是第一个标签栏项目的导航控制器。

答案 1 :(得分:1)

_mainTabBar.viewControllers = [NSArray arrayWithObjects:_navigationController, otherViewController, nil];
[_window addSubview:_mainTabBar.view];

相反,这段代码,你尝试下面的代码:

UITabBarController *tbC = [[UITabBarController alloc]init];
tbC.viewControllers = [NSArray arrayWithObjects:_navigationController,otherViewController, nil];
self.window.rootViewController = tbC;

并删除

self.window.rootViewController = self.navigationController;

答案 2 :(得分:0)

很抱歉这个愚蠢的错误,我从未分配过tabbar控制器的实例,Mundi是对的,让rootviewcontroller成为了tabbarcontroller的方法。