Gibt es eine Möglichkeit zu wissen, ob ein UIViewController modal präsentiert und entlassen wurde?

8

Gibt es eine Möglichkeit zu wissen, ob ein UIViewController modal präsentiert und entlassen wurde?

Etwas wie:

  • hasBeenPresentiertModally
  • hasBeenDismissionedModally

Danke

    
aneuryzm 05.09.2011, 07:11
quelle

2 Antworten

9

Es ist nichts eingebaut, aber ein View-Controller könnte beim Empfang von viewDidAppear und / oder viewWillDisappear prüfen, ob ein parentViewController vorhanden ist, da pro Apples Dokumentation (Hervorhebung hinzugefügt):

  

Übergeordnete Ansichts-Controller sind in Navigation, Tab-Leiste und modal relevant   Controller-Hierarchien anzeigen. In jeder dieser Hierarchien der Eltern   ist das Objekt, das für die Anzeige des aktuellen View-Controllers zuständig ist.    Wenn Sie einen View-Controller als eigenständiges Objekt verwenden, also nicht   als Teil einer View-Controller-Hierarchie - der Wert in dieser Eigenschaft ist   Null.

Wenn es dann ist, kann es geeignete Flags für zukünftige Referenz setzen.

Beachten Sie, dass die modale Darstellung etwas anderes ist, als modal zu sein. Auf einem iPad könnten Sie beispielsweise einen Controller in ein UIPopoverController setzen, so dass der Controller nicht modal präsentiert wird, aber dann könnte er modal einen anderen Controller über sich selbst darstellen. Der zweite Controller wird also modal präsentiert, ist aber selbst kein modaler Dialog, da der Benutzer das Popover einfach komplett ignorieren kann, wenn das Programm anders eingerichtet ist.

    
Tommy 05.09.2011, 07:24
quelle
6

Überprüfen Sie, ob die parentViewController -Eigenschaft Ihres UIViewControllers nil ist oder nicht. Wenn die Eigenschaft nil ist, wird sie abgelehnt, andernfalls wird sie angezeigt.

HINWEIS: Die parentViewController -Eigenschaft von UITableViewControllers childViewController wäre auch nicht nil , Sie sollten auch sicherstellen, dass der parentViewController nicht UITableViewController ist.

    
xuzhe 05.09.2011 07:24
quelle

Tags und Links