Die Methode von UITabBarControllerDelegate wird nicht aufgerufen

Ragara

Ich erstelle programmgesteuert einen UITabBarController mit mehr als 5 Registerkarten (genau 8 untergeordnete Ansichtscontroller).

Mein Zweck ist eine benutzerdefinierte Übergangsanimation für den Tab-Wechsel. Ich richte einen Delegaten für den UITabbarController ein und implementiere die Methode:

- (nullable id <UIViewControllerAnimatedTransitioning>)tabBarController:(UITabBarController *)tabBarController
            animationControllerForTransitionFromViewController:(UIViewController *)fromVC
                                              toViewController:(UIViewController *)toVC  

Wenn ich eine Registerkarte durch Senden auswähle:

[tabbarController setSelectedIndex: 6];

Die Methode des Delegaten wird nicht aufgerufen.

Die Methode des Delegierten wird richtig aufgerufen, wenn ich sende

[tabbarController setSelectedIndex: 3]; 

zB für eine sichtbare Registerkarte.

Noch eine Anmerkung: Wenn der aktuell ausgewählte View-Controller im sichtbaren Bereich 0..3 ist und der nächste View außerhalb des sichtbaren Bereichs 0..3 ist, wird die Delegate-Methode immer noch aufgerufen. Falls der aktuell ausgewählte View-Controller außerhalb des sichtbaren Bereichs 0..3 liegt und der nächste View ebenfalls außerhalb des sichtbaren Bereichs 0..3 liegt, wird die Delegate-Methode nicht aufgerufen. Und ich verliere meine benutzerdefinierte Übergangsanimation. Das ist mein Problem.

Ich habe auch versucht zu senden

[tabbarController setSelectedViewController: someViewController];

Anstatt von

[tabbarController setSelectedIndex: 6];

Es funktioniert nicht.

Ragara

Ich habe eine schwierige Lösung gemacht.

Ich sammle alle 8 Ansichtscontroller in einem getrennten Array. Nennen Sie es Controller .

Beim Start fülle ich tabbarController.viewcontrollers mit den ersten 5 Controller- Elementen . Weiterhin gibt es 2 Szenarien:

  1. Der Benutzer möchte eine Registerkarte mit einem Index im Bereich 0..4 sehen . Es gibt nichts zu tun, da wir bereits entsprechende Viewcontroller in tabbarController.viewcontrollers gesetzt haben .
  2. Der Benutzer möchte eine Registerkarte mit einem Index außerhalb des Bereichs 0..4 sehen . Der Benutzer möchte beispielsweise die Registerkarte mit dem Index 6 sehen. Und die aktuell ausgewählte Registerkarte hat beispielsweise den Index 2. In diesem Fall wähle ich eine Zahl im Bereich 0..4 aus, die ungleich dem aktuell ausgewählten Registerindex ist. Zum Beispiel 4. Außerdem ersetze ich tabbarController.viewcontrollers[4] durch controllers[6] . Danach rufe ich an

     [tabbarController setSelectedIndex: 4];  
    

Als Ergebnis sehe ich Controller[6] und die Methode des Delegate wird richtig aufgerufen.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

UITabBarControllerDelegate-Methode wird nicht aufgerufen

Die onReceive-Methode von BroadcastReceiver wird nicht aufgerufen

Die Methode im verspotteten Objekt wird nicht von sut aufgerufen

Die HttpPost-Methode wird nicht aufgerufen

Die Setup-Methode wird nicht aufgerufen

Die Methode onLocationChanged () wird nicht aufgerufen

Die ContainerRequestFilter-Methode wird nicht aufgerufen

Die Verwendung von PowerMockito.whenNew () wird nicht verspottet und die ursprüngliche Methode wird aufgerufen

Eine Methode, die von einer statischen Methode aufgerufen wird, kann nicht überprüft werden

Methode mit gleichem Namen, die von Interface aufgerufen wird, nicht von Trait?

Die im Ersteller aufgerufene Methode wird von der Basisklasse aufgerufen, nicht jedoch von der abgeleiteten Klasse

Nicht aufgelöste NON-Template-Methode wird von der Template-Methode aufgerufen, die korrekt instanziiert wird

Die Methode AspectJ wird nicht aufgerufen, wenn die Methode delete auf JpaRepository aufgerufen wird

UseState, das von UseEffect aufgerufen wird, aktualisiert die Variable nicht mit der Set-Methode

Die Methode ready () von Vue.js wird in der vue-Komponente nicht aufgerufen

Die OnModelCreating-Methode von Entity Framework Core 1.1 wird nicht aufgerufen

Die PrimeFaces LazyDataModel # load () -Methode wird nach dem Hinzufügen von OmniFaces nicht mehr aufgerufen

Die fromString-Methode von ParamConverter wird in JAX-RS nicht für Nullwerte aufgerufen

Beim Aktualisieren von Requisiten wird die componentWillReceiveProps-Methode nicht aufgerufen

Die Before () -Methode von env.groovy wird in der geb-Automatisierung nicht aufgerufen

Warum wird die build () -Methode von State auch dann aufgerufen, wenn das Widget nicht sichtbar ist?

Java - Methode einer anderen Klasse, die nicht aufgerufen wird, auch wenn sie von einer Instanz dieser Klasse aufgerufen wurde

Die AnwendungDidFinishLaunching von NSApplicationDelegate wird nicht aufgerufen

Überschreiben Sie die virtuelle Methode, die nicht aufgerufen wird

Die fehlende Methode von Groovy wird vom Delegaten eines Abschlusses nicht für implizite Aufrufe von Nicht-GroovyObjects aufgerufen

Die Implementierung von UITabBarControllerDelegate funktioniert nicht

Warum wird die init-Methode von Decodable bei Verwendung der JSONDecoder.decode-Methode nicht aufgerufen?

Warum wird eine print-Anweisung nicht ausgeführt, wenn die Methode von "leer" main aufgerufen wird?

Funktion wird nicht von der Methode componentDidMount aufgerufen

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  3. 3

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  4. 4

    Eclipse Oxygen - Projekte verschwinden

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Wie kann ich den Kaskadenmodus global einstellen?

  7. 7

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  8. 8

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  9. 9

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  10. 10

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  11. 11

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  12. 12

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  13. 13

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  14. 14

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  15. 15

    Wie wählt man Unterschiede mit drei Tabellen aus?

  16. 16

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  17. 17

    Wie kann ich meine Tabelle abfragen, um sie in mySQL nach 2 Feldern zu gruppieren?

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  20. 20

    Modbus Python Schneider PM5300

  21. 21

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

heißlabel

Archiv