将 ViewController 添加到现有 UINavigation 堆栈

Posted

技术标签:

【中文标题】将 ViewController 添加到现有 UINavigation 堆栈【英文标题】:Adding ViewController to existing UINavigation stack 【发布时间】:2014-02-11 07:09:19 【问题描述】:

如何在不使用initWithRootViewController的情况下在UINavigationController之上呈现模态ViewController,只需将其添加到现有的navigationcontroller堆栈中?

我的代码是:

TableViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"TableView"];
UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:controller];
[self presentViewController:navi animated:NO completion:nil];

编辑:我真正想做的是:“vc1 push vc2 modal vc3”,而不是使用“poptoroot ...to vc1”。但是 initWithRootViewController (vc3) 正在破坏它。

【问题讨论】:

当前模式和添加到现有的导航控制器是互斥的。也许您正在寻找[self.navigationController pushViewController: controller animated:YES];?! 我不想使用推送。代码在 is 完美运行。我真正想做的是:“vc1 push vc2 modal vc3”,而不是使用“poptoroot ... to vc1”。但是 initWithRootViewController (vc3) 正在破坏它。 尝试展示你的控制器而不是导航 【参考方案1】:

如果你想改变navigationController的堆栈。使用:

- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated NS_AVAILABLE_ios(3_0); // If animated is YES, then simulate a push or pop depending on whether the new top view controller was previously in the stack.

会有帮助的。

【讨论】:

以上是关于将 ViewController 添加到现有 UINavigation 堆栈的主要内容,如果未能解决你的问题,请参考以下文章

将 QML(QQuickView) 添加到现有 UI

使用多个 ViewController、Xcode 将代码连接到情节提要中的 UI

创建一个viewcontroller并将现有VC的标签和按钮添加到新的VC Swift iOS

将带有文本的滚动视图对象添加到 ViewController 故事板应用程序

如何将 UWP 目标添加到现有 Xamarin Forms 项目?

添加专用 UI​​ViewController(例如 Monotouch 中的 UIPageViewController)的正确方法是啥?