2017-03-23 10 views
0

Ich habe im Anschluss an die im Interface Builder: enter image description hereWarum erscheint die Tab-Leiste nicht auf meinen View-Controllern?

Die oben links mein Haupt View-Controller ist, wo ich 2 Tasten, die Segue zwei UIViewControllers haben. Diese beiden UIViewControllers sind mit dem Tab Bar Controller verbunden. Wie aber könnte ich diese 2 Tasten dazu bringen, auf bestimmte Ansichten zu verlinken? Gerade jetzt ist es spezifisch verbunden, aber es (oder etwas anderes) bewirkt, dass der Balken nicht angezeigt wird.

Ist das Problem, dass ich den Tab Bar Controller nicht mit der Hauptansicht verbunden habe?

Antwort

0

Das ist nicht ganz so, wie die tabBarController funktioniert.

Ich kann sehen, Ihre erste Ansicht Controller ist die oben links, und es drückt eine der beiden anderen auf der rechten Seite auf den Navigations-Stapel, wenn Sie einen Knopf drücken. Aber in Ihrem aktuellen Setup wird zu keinem Zeitpunkt der Tab-Controller selbst auf den Stack geschoben.

Stattdessen möchten Sie, dass Ihr anfänglicher Ansichts-Controller den Tab-Bar-Controller über eine Schaltfläche oder auf andere Weise auf den Stack verschiebt. Der Tab-Controller zeigt dann Ihre anderen beiden View-Controller an.

1

Ja, Sie haben Recht, dass das Problem auftritt, weil der Tab-Leiste-Controller das Ziel der Segmente sein muss. Beheben Sie es wie folgt:

In IB, löschen Sie die Übergänge von den zwei Tasten und erstellen Sie zwei neue, eine von jeder Taste auf die Registerkarte Leiste Controller. Geben Sie jedem einen Identifikator, wie buttonA von einer Taste und buttonB von der anderen.

Im View-Controller implementieren prepareForSegue für jedes segue Verständnis, dass das Ziel einer Controller Tab-Leiste ist und dass jeder Übergang auf eine andere Registerkarte Auswahl erfordert ...

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:@"buttonA"]) { 
     UITabBarController *tabBarController = (UITabBarController *)segue.destinationViewController; 
     tabBarController.selectedIndex = 0; 
    } 
    if ([segue.identifier isEqualToString:@"buttonB"]) { 
     UITabBarController *tabBarController = (UITabBarController *)segue.destinationViewController; 
     tabBarController.selectedIndex = 1; 
    } 
} 
+0

ich nicht über die Optionalität der wusste prepareForSegue .. vielen Dank! :) – konyv12

Verwandte Themen