我有一个标签栏控制器应用程序,标签栏控制器分叉成几个“标签”视图控制器,在一个视图控制器中我想将用户重定向到另一个视图控制器。我从该选项卡视图控制器创建一个segue到目标视图控制器,并给它一个Identifer。我在“viewDidAppear”中调用“performSegueWithIdentifier”来重定向用户。
当segue是“Modal”时它工作正常,但是因为我想保留标签,我想通过“Push”调用segue。但是,一旦我将segue更改为“Push”,它就不再起作用了(它不会尝试转到目标视图控制器)。该应用程序没有在模拟器上崩溃,只是停留在原始选项卡视图控制器上。
答案 0 :(得分:10)
“Push”是一个以UINavigation控制器为根的UIViewController堆栈的机制。
除非选项卡中的视图控制器是导航控制器,否则无法执行推送。
以此为例
TabBar VC
...Tab 1 -> UIViewController
...Tab 2 -> UIVIewController
...Tab 3 -> UINavigationController -> UIViewController(root)
只有Tab 3可以执行推送segue。