ios 5 打开一个带有正确 TabBar 和 NavController 包装的特定视图控制器

Posted

技术标签:

【中文标题】ios 5 打开一个带有正确 TabBar 和 NavController 包装的特定视图控制器【英文标题】:ios 5 opening a specific viewcontroller with the correct TabBar and NavController wrapped 【发布时间】:2012-08-16 19:57:23 【问题描述】:

我会尽力解释这一点。

我的应用程序有一个作为主导航的 TabBarController

我有一个模态视图,我想添加一个列表。可以从 2 个不同的视图控制器访问该屏幕。

从主要路线我只是关闭模式,一切都很好。但是,从第二条路线开始,我需要能够打开一个全新的 ViewController。

我遇到的问题是我似乎无法打开包含 TabBar 和 NavBar 的 ViewController。

这是我目前正在尝试让它工作的代码。

    UITabBarController *tabController = [self.storyboard instantiateViewControllerWithIdentifier:@"MainInterface"];
    tabController.selectedIndex = 1;
    //_window.rootViewController = tabController;
    UINavigationController *groceryNavController = [self.storyboard instantiateViewControllerWithIdentifier:@"MainNavController"];
    UIViewController *groceryViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"GroceryViewController"];

    UIViewController *currentVC = self;
    [currentVC.navigationController pushViewController:groceryViewController animated:YES];

【问题讨论】:

【参考方案1】:

一种方法是通过委托。如果在委托中,则调用相关的导航控制器:

self.navigationController

那么你必须这样做:

YourAppDelegate *delegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate.navigationController pushViewController:groceryViewController animated:YES]; 

(将“YourAppDelegate”替换为您的应用代理的实际名称)

【讨论】:

我似乎无法让它工作。我使用了你的模型,但没有显示视图控制器。

以上是关于ios 5 打开一个带有正确 TabBar 和 NavController 包装的特定视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

点击 tabBar 项目应该总是打开第一个视图控制器

ios开发 如何修改正确tabBar的高度?

UITabBar 图标未正确显示

如何在 jqueryMobile 中正确创建类似于 iOS tabbarController 的 tabbar 控制器?

IOS 5 TabBar 自定义

打开 TabBar 子视图