簡體   English   中英

關閉以模態顯示的視圖使標簽欄控制器(種類)重置

[英]Dismiss Modally presented view makes tab bar controller (kind of) reset

我有一個應用程序,其中有標簽欄控制器作為主控制器。 每個選項卡都有一系列帶有導航控制器的視圖,我通常將這些視圖推入並彈出到堆棧中。

奇怪的問題是

情況1:如果我創建一個UINavigationController並創建一個新的viewController作為其根,然后顯示此NavigationController。 在這個新的導航堆棧中,我可以輕松地模態呈現視圖並將其毫無問題地關閉。

情況2:現在,無需創建新的UINavigationController,我將呈現一個視圖,而當我關閉視圖時,下面的視圖的行為將很奇怪。 例如,它的呈現視圖是UICollectionView,它只是滾動回到第一個單元格,就像在執行“重新加載”操作和“ scrollTo”第一個單元格一樣。 如果presentingView是從rootView推送的視圖,則它將只是popToRoot視圖,這絕對不是故意的。

在實現UITabbarController之前,我沒有這個問題,所以我想,我應該知道在呈現視圖並在UITabbarController中關閉視圖時幕后的情況。

我猜,在UITabbarController視圖中關閉視圖時,它會將所有內容“重置”到當前選項卡的第一個視圖。 我真的不確定那是真的。

我知道這是一種概念上的想法,但是我不禁想到這里肯定缺少一些關鍵的東西。

我犯了一個愚蠢的錯誤,即我將UITabbarController子類化,並在viewDidAppear中而不是viewdidLoad中定義導航控制器,因此,當我將窗口的rootview設置為tabbar控制器時,導航控制器的設置不正確。 這就是為什么所有棘手的事情都發生了的原因。 如果只是崩潰而不是這種奇怪的行為,那就更好了。

您可以嘗試此操作以返回到第一個ViewController。

 - (IBAction)buttonPressedFromVC2:(UIButton *)sender { [self dismissViewControllerAnimated:YES completion:nil]; } // This is going back to VC1. 

此方法將在第二個viewcontroller.m文件中。 是按鈕點擊方法。

暫無
暫無

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

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