Wie innerhalb einer tab-bar-controller tun, ich Wechsel von einer view-controller zu einem anderen und behalten Sie die tab-Leiste?
Ich habe eine Anwendung mit mehreren view Controllern gesteuert von einem tab bar controller. Aus diesen view-Controller möchte ich (auf das klicken auf eine Schaltfläche) übergang zu einem anderen view controller und binden die tab-Leiste am unteren Rand des segued zu sehen.
Ich verwendet habe,
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"newView"]){
UIViewController *controller =segue.destinationViewController;
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
}
}
Dieser funktioniert einwandfrei außer der tab-Leiste fehlt von der segued anzeigen (ein Platzhalter, der anzeigt, für die es im storyboard, aber es wird nicht angezeigt, wenn die app ausgeführt wird)
Ich habe auch versucht, anstelle
[self presentModalViewController:controller animated:YES];
mit
[self presentViewController:controller animated:YES completion:nil];
aber das funktioniert auch nicht.
Ein bisschen Debuggen zeigt, dass für die segued-view-controller, der tabBarController-Eigenschaft festgelegt auf null.
Gibt es trotzdem behalten Sie die tab-bar in der segued-view-controller?
InformationsquelleAutor John | 2012-03-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus deiner Erklärung, ich glaube, Sie wollen nicht ein modal-controller. Modal wird verwendet, um die overlay-rendering der tab-Leiste nutzlos. Von Ihrem storyboard, wählen Sie Ihr segue und wählen Sie push -, nicht-modal.
Push vs Modal (Hinweis: die tab-Leiste):
Zur Einleitung der übergang von code verwenden
[self performSegueWithIdentifier:@"theSegueIdentifier" sender:selfOrSomeObject]
ist eine Methode derUIViewController
. Diese Liniecontroller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentModalViewController:controller animated:YES];
wird verwendet für die modal übergänge nicht drückt. Entfernen Sie diese Zeile.Auch Apple docs für presentModalViewController:animierte..."Auf dem iPhone und iPod touch-Geräte, die Ansicht von modalViewController stets im Vollbild. Auf dem iPad, die Darstellung abhängig vom Wert in der modalPresentationStyle Eigenschaft.
Ich hatte angefangen, mit dem code wie Sie vorschlagen, und konnte nicht die segue arbeiten, bis ich die zusätzlichen Zeilen eingefügt. Ich habe jetzt herausgefunden, dass die push-leitet über nur innerhalb eines Navigations-controller (und das arbeiten). Ich dachte, der Navigation-controller war ein problem, aber ich fand die "bar visibility "checkbox" und ich bin schließen die Ansicht mit [self.navigationController popViewControllerAnimated:NO];. Danke für Eure Hilfe, vor allem den doc zu zitieren, was ich gelesen, aber vergessen.
InformationsquelleAutor Gobot