从标签栏按钮将视图控制器推入导航控制器

时间:2014-07-23 08:30:08

标签: ios objective-c uinavigationcontroller uitabbarcontroller

我有一个带有按钮的标签栏控制器:

- (void) addButtonPressed:(UIButton *) sender
{    
    [sender setBackgroundColor:[UIColor regularColor]];

    PostViewController *post = [[PostViewController alloc] init];

    [self.navigationController pushViewController:post animated:YES];
}

此代码运行但PostViewController从未显示,并且标签栏控制器仍然存在。

如何推送到新控制器?

创建了NavigationController,并将StartViewController添加为rootController。

然后在StartViewController中我有:

TabBarController *tab = [[TabBarController alloc] init];

    // Presentation
[self presentViewController:tab animated:NO completion:nil];

3 个答案:

答案 0 :(得分:0)

在标签栏中,您需要创建单独的导航控制器。

假设有3个选项卡A,B和C.所有这三个选项卡都具有从一个视图到另一个视图的导航功能。比你需要创建三个单独的导航控制器,指向选项卡A,B和C.这样你就可以导航到特定选项卡中的任何类。

有关详细信息,请查看此link

希望这会对你有所帮助。快乐编码:)

答案 1 :(得分:0)

您可能需要在导航控制器中嵌入标签栏控制器,在您的故事板中单击您的tabbarController,使其以所有蓝线突出显示,然后转到Xcode中的编辑器选择嵌入IN> UINavigationController ..如果您想以编程方式执行此操作,请在您设置窗口的AppDelegate中使用此::

UINavigationController*  navigationController = [[UINavigationController alloc] initWithRootViewController:tabBarController];
navigationController.toolbarHidden=YES;
navigationController.navigationBarHidden=YES;
self.window.rootViewController =navigationController; 

答案 2 :(得分:0)

如果您使用.xib,则必须使用NSBundle加载nib

如果您使用的是故事板,则需要使用prepareForSegue传递数据或只显示数据