簡體   English   中英

從TabBarController到ViewController執行SeeSegue而不隱藏TabBar

[英]PerformSegue from TabBarController to ViewController without hiding TabBar

我用Xcode和Swift創建了一個iOS應用程序。 我的Storyboard包含五個由單個TabBarController管理的ViewControllers

有沒有辦法從UITabBarController執行segue到UIViewController而底部的TabBar消失了?

實現此目的的最佳方法是將包含在選項卡欄控制器中的視圖控制器包裝在UINavigationController中。 然后在該視圖內部,您可以將新視圖推送到導航控制器並保留Tab Bar控制器。

查看有關組合視圖控制器的鏈接https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/CombiningViewControllers.html

UIWindow root
|
UITabbarController
|
|- UINavigationController - navigationStack
|                                         |- 1 - SomeViewController
|                                         |- ...
|                                         |- ...
|                                         |- N'th...SomeViewController
|- SomeViewController
|- SomeViewController
|- SomeViewController

以上是正確的視圖控制器層次結構。 嘗試以任何其他方式執行它沒有任何意義。 在示例中,我僅在導航控制器中嵌入了第一組控制器。 它會做你要求的。 您可以在任何標簽欄位置使用此嵌入。

TabBarController使用VC包含來顯示控制器。 你可以像這樣嵌入你的控制器

在此輸入圖像描述

解:

我問這個問題是這樣處理QuickActions的。 這是工作解決方案,沒有TabBar消失: https//stackoverflow.com/a/37710017/6423177

如果您正在查看的視圖控制器是標簽欄視圖控制器,那么您只需要:

self.selectedIndex = INDEX_OF_VIEWCONTROLLER_IN_TABS

這將移動到控制器,就像您點擊選項卡一樣。

所以,你可以let tabVC = storyboard.instantiateViewController("TABIDENTIFIER") as! UITabBarController let tabVC = storyboard.instantiateViewController("TABIDENTIFIER") as! UITabBarController (或CustomTabBarController)

然后選擇索引tabVC.selectedIndex = index

如果您正在從UITabBarController執行segue到UIViewController ,則無法保持TabBar顯示,但如果您從view controller (即選項卡)執行segue到UIViewControllerTabBar將不會被隱藏。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM