在 UITabBarController 的 UINavigationController 中推送 UIViewController
Posted
技术标签:
【中文标题】在 UITabBarController 的 UINavigationController 中推送 UIViewController【英文标题】:Push a UIViewController within a UITabBarController's UINavigationController 【发布时间】:2015-01-20 17:42:40 【问题描述】:我有一个带有 4 个选项卡的 UITabBarController。每个选项卡都是一个 UINavigationController,其中 UIViewController 作为其 RootViewController 加载。 例如:
Tab1ViewController* viewC = [[Tab1ViewController alloc] initWithNibName:nil bundle:nil];
UINavigationController* navCDisc = [[UINavigationController alloc] initWithRootViewController: viewC];
点击我的 Tab1ViewController 中的一个按钮,我现在必须在现有的 UIViewController 之上推送一个新的 UIViewController。我怎样才能做到这一点?
在 Tab1ViewController.m 文件中,我尝试了:
UIViewController *newVC = [[UIViewController alloc] initWithNibName:nil bundle:nil];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:newVC];
[self.navigationController pushViewController:newVC animated:YES];
这行为很奇怪,会自动切换选项卡。
【问题讨论】:
【参考方案1】:UIViewController *newVC = [[UIViewController alloc] initWithNibName:nil bundle:nil];
[self.navigationController pushViewController:newVC animated:YES];
仅此而已,不要创建另一个 UINavigationController。如果它不起作用,请确保代码已执行并且 self.navigationController 不是 nil(放置断点);如果是,它将起作用
【讨论】:
以上是关于在 UITabBarController 的 UINavigationController 中推送 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发UI篇—UITabBarController简单介绍
如何更新 UITabbarController 中的默认徽章 UI 外观?