将 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 堆栈的主要内容,如果未能解决你的问题,请参考以下文章
使用多个 ViewController、Xcode 将代码连接到情节提要中的 UI
创建一个viewcontroller并将现有VC的标签和按钮添加到新的VC Swift iOS
将带有文本的滚动视图对象添加到 ViewController 故事板应用程序
如何将 UWP 目标添加到现有 Xamarin Forms 项目?
添加专用 UIViewController(例如 Monotouch 中的 UIPageViewController)的正确方法是啥?