簡體   English   中英

Swift:輕按Tab欄時關閉模態呈現的視圖控制器

[英]Swift: Dismissing Modally Presented View Controller when Tab Bar is tapped

我有一個帶有子類化的UITabBarController的選項卡式應用程序。 我的第一個視圖控制器能夠模態呈現另一個視圖控制器。

我的模態表示視圖控制器應該在其內容之外的任何內容被點擊時自動關閉。 負責的代碼如下:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    let touch : UITouch? = touches.first
    if (touch?.view != contentView){
        self.dismiss(animated: true, completion: nil)
    }
}

如果我點擊視圖外部的背景,則模態顯示的視圖控制器將按預期關閉。 但是,如果我點擊“標簽欄”,它不會像預期的那樣消失。

此外,如果我的模態視圖控制器沒有被關閉,而我使用選項卡欄轉到另一個視圖控制器,那么當我回到第一個選項卡時,我在黑色背景上迎接了模態視圖控制器(換句話說, ,在這種情況下關閉模態視圖控制器時,剩下的就是一個黑色的空白和標簽欄控制器。然后我被迫選擇另一個標簽,然后再次選擇第一個標簽以進行修復)。

關於如何解決/避免這種行為的任何想法? 我想知道是否可能有一種方法可以讓我以模態表示的視圖“拾取”我的選項卡欄上的內容,以便它可以自行消失(或者是否還有另一種更好的方法),但是在搜索了雖然我還沒有找到任何解決方案。

為了消除以模態形式顯示的viewController,

您可以在Tabbar按鈕項上添加操作,

然后使用

self.dismiss(animated: true, completion: nil)

暫無
暫無

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

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