寻找位于标签栏和导航栏中的视图控制器

时间:2015-07-15 16:23:48

标签: ios xcode swift xcode6

1个tabbarcontroller连接到3个导航控制器。每个导航控制器都连接到视图控制器。在#3中,按钮以模态方式分割到视图控制器。我不希望segue被“推”。无论如何我可以在那个视图控制器中创建一个按钮,然后再回到#3?

我想在“randomviewcontroller”中使用一个按钮来执行一个segue到“viewcontroller3”,它位于导航控制器和tabbarcontroller中。 “viewcontroller3”是第三个tabbarbutton视图。

这样:

randomviewcontroller执行segue到

TabBarController - (relationshipsegue) - > NavigationController - (rootview controllersegue) - > viewcontroller3

示例:登录视图控制器。你按下登录按钮,它会转到第三个标签栏按钮视图(如果你点击标签栏上的第三个图标,你会看到)。第三个标签栏按钮连接到导航控制器,该控制器是视图控制器的根视图。

2 个答案:

答案 0 :(得分:3)

如果tabbarviewcontrollers.viewcontrollers数组中的视图控制器都是导航控制器,并且您只想以编程方式切换选项卡并显示该导航控制器的根视图控制器,那么您只需要切换到索引您要选择的标签:

tabBarController?.selectedIndex = 2 //or whatever index you want

答案 1 :(得分:1)

我不确定我是否完全理解您的问题(我不明白为什么您的某个标签中会有一个登录视图控制器,很可能它会出现在自己的视图控制器中)。

尝试将按钮连接到以下代码(假设按钮位于登录选项卡中)

; CIDER 0.9.1 (Java 1.7.0_79, Clojure 1.6.0, nREPL 0.2.6)
WARNING: CIDER requires nREPL 0.2.7 (or newer) to work properly
WARNING: The following required nREPL ops are not supported: 
apropos classpath complete eldoc format-code format-edn info inspect-pop inspect-push inspect-refresh macroexpand ns-list ns-vars ns-path refresh resource stacktrace toggle-trace-var toggle-trace-ns undef
Please, install (or update) cider-nrepl 0.9.1 and restart CIDER
WARNING: The following nREPL ops are not supported:
artifact-list artifact-versions clean-ns configure extract-definition find-debug-fns find-symbol find-unbound hotload-dependency rename-file-or-dir resolve-missing stubs-for-interface version warm-ast-cache
Please, install (or update) refactor-nrepl and restart REPL.
You can mute this warning by changing cljr-suppress-middleware-warnings.
WARNING: CIDER's version (0.9.1) does not match cider-nrepl's version (not installed)

让我知道这是否有效。