![](/img/trans.png)
[英]How to move from Viewcontroller to TabBarController without segue
[英]PerformSegue from TabBarController to ViewController without hiding TabBar
我用Xcode和Swift創建了一個iOS應用程序。 我的Storyboard
包含五個由單個TabBarController
管理的ViewControllers
。
有沒有辦法從UITabBarController
執行segue到UIViewController
而底部的TabBar消失了?
實現此目的的最佳方法是將包含在選項卡欄控制器中的視圖控制器包裝在UINavigationController中。 然后在該視圖內部,您可以將新視圖推送到導航控制器並保留Tab Bar控制器。
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到UIViewController
則TabBar
將不會被隱藏。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.