Ich habe einen UITabBarController und ich habe seine Delegate-Methode didSelectViewController
eingerichtet, da ich mich für den Index der ausgewählten Registerkarte interessiere.
Ich habe jedoch festgestellt, dass die Methode didSelectViewController
nicht aufgerufen wird, wenn sich der Benutzer im Bereich "Weitere" befindet (wenn mehr Registerkarten vorhanden sind als in der Tableiste angezeigt werden können):
Gibt es eine Möglichkeit für mich, über die Elemente benachrichtigt zu werden, die der Benutzer aus der Tabelle auswählt, die automatisch erstellt wird?
Ich fand, was ich in diese Frage
Grundsätzlich richten Sie UITabBarControllerDelegate
und a UINavigationControllerDelegate
für den Navigationscontroller ein, der auf der Registerkarte Mehr angezeigt wird. Danach erkennen Sie, ob der Benutzer eine der sichtbaren Registerkarten oder die Registerkarte "Mehr" berührt hat.
BEARBEITEN
Um die Tabelle, die im Navigationscontroller "Mehr" sichtbar ist, auch direkt zu bearbeiten, können Sie einen Tabellen-View-Delegaten "Man-in-the-middle" einrichten, der die Aufrufe des ursprünglichen Delegaten abfängt. Siehe Code von didSelectViewController
unten:
Danach können Sie innerhalb der Delegate-Methoden alles tun, was Sie wollen, solange Sie dieselben Methoden im anderen Delegaten aufrufen (ich habe tatsächlich überprüft, auf welche Methoden der ursprüngliche Delegat reagiert und die einzige Delegate-Methode, die das ist implementiert ist der didSelectRow:forIndexPath:
). Siehe ein Beispiel unten:
Tags und Links ios uitabbarcontroller delegates