簡體   English   中英

有沒有辦法知道UIViewController是否已經以模態方式呈現和解散?

[英]Is there a way to know if a UIViewController has been presented and dismissed modally ?

有沒有辦法知道UIViewController是否已經以模態方式呈現和解散?

就像是:

  • hasBeenPresentedModally
  • hasBeenDismissedModally

謝謝

沒有內置的東西,但視圖控制器可以在接收到viewDidAppear和/或viewWillDisappear檢查它是否有一個parentViewController ,因為根據Apple的文檔 (重點添加):

父視圖控制器與導航,選項卡欄和模態視圖控制器層次結構相關。 在每個層次結構中,父級是負責顯示當前視圖控制器的對象。 如果您將視圖控制器用作獨立對象(即不是視圖控制器層次結構的一部分),則此屬性中的值為nil。

如果有,那么它可以設置合適的標志以供將來參考。

請注意,以模態呈現不同於真正的模態。 例如,在iPad上你可能會將一個控制器放在UIPopoverController ,這樣控制器就不會以模態方式呈現,但是它可能會以模態方式呈現另一個控制器。 因此,第二個控制器以模態方式呈現,但本身並不是模態對話,因為 - 如果程序以其他方式適當設置 - 用戶可以完全忽略彈出窗口。

檢查你的UIViewController的parentViewController屬性是否為nil 如果該財產是nil那么它被解雇,否則它被呈現。

注意:UITableViewController的childViewController的parentViewController屬性也不是nil ,你還應該確保parentViewController不是UITableViewController。

暫無
暫無

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

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