didSelectViewController wird nicht im Abschnitt "More" aufgerufen

8

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?

    
Shade 27.04.2011, 11:31
quelle

1 Antwort

8

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:

%Vor%

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:

%Vor%     
Shade 27.04.2011, 14:09
quelle