簡體   English   中英

2個ViewController以模態形式呈現UITabBarController

[英]2 ViewControllers presenting a UITabBarController Modally

我正在嘗試在iOS應用程序中創建類似於Instagram相機“ TabBarItem”功能的功能。 當按下相機按鈕時, tabBarController自動退出(以模式方式),並在后台顯示相機視圖。 當我們決定關閉攝影機視圖時, tabBarController方式顯示tabBarController,一切都很好! 我的問題類似於此實現。

我有一個自定義的UITabBar ,其中2個“ TabBarItems”應執行上述操作。 當按下一個“TabBarItem”時, tabBarController應該解雇(模態),並作為一個視圖應該存在於后台tabBarController被駁回。 其他“ TabBarItem”應發生相同的情況,但顯示的視圖不同。 我想到了幾種不同的方法來執行此操作,但是它們似乎都不是真正的“優雅”,因此我還沒有找到類似的問題。 所以去。

為了便於描述:

按下TabBarItem1(TB1)->(以模式方式關閉)TabBarController->顯示ViewController1(VC1)(因為正在關閉TabBarController)

按下TabBarItem2(TB2)->(以模式方式關閉)TabBarController->顯示ViewController2(VC2)(因為正在關閉TabBarController)

第一種方法:將VC1設置為初始VC->以模態形式呈現VC2(動畫:否)->以模態形式呈現TabBarController然后,當... TB1被按下時->關閉TabBarController(動畫:是)->退出VC2(動畫:否) 問題 :VC2將可見,直到關閉TabBarController。 所以這是不行的。

第二種方法:創建一個ViewController(設置為initialVC),其中包含2個基於所選TabBarItem隱藏/顯示的UIView(代表VC1.view和VC2.view)。 這是SEEMS最合理的解決方案。 但是我認為這不是很優雅。 我想知道是否有人提出任何建議。 希望它不會像我看上去的那樣令人困惑。

任何幫助,將不勝感激。

如果您執行方法#1並關閉VC2(而不先自行關閉選項卡欄),那么是否以正確的外觀將堆棧中的這兩者都關閉了? 我沒有跟上模態堆棧文檔,但我認為這可能有用。

當您需要將選項卡欄放回原位時,您可能需要做一些清理工作(盡管我認為當您重新呈現vc2時它應該會返回。)

暫無
暫無

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

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