push-to-eine weitere view controller ohne prepareForSegue
Wie können Sie drücken, um einen anderen view-controller ohne prepareForSegue
?
myClassVC *viewController = [myClassVC alloc];
UIStoryboardSegue *segue = [[UIStoryboardSegue alloc] initWithIdentifier:@"pushToMyVC" source:self destination:viewController];
if ([segue.identifier isEqualToString:@"pushToMyVC"]) {
NSLog(@"logging");
myClassVC *viewController = (myClassVC *)[segue destinationViewController];
[self presentViewController:viewController animated:YES completion:nil];
}
InformationsquelleAutor Marius Behrens | 2013-03-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten programmgesteuert aufrufen einer push-segue, geben Sie die segue ein "storyboard id" im Interface Builder und Sie können dann:
Alternativ, wenn Sie nicht möchten, führen Sie die segue, die Sie instanziieren können die Ziel-view-controller und dann manuell, push-to-view-controller. Alles, was Sie tun müssen, ist, um sicherzustellen, dass die Ziel-view-controller hat sein eigenes "storyboard id" im Interface Builder, dann können Sie:
Sagte Sie, "drücken" (und damit habe ich verwendet
pushViewController
oben). Wenn Sie wirklich bedeutete, zu "präsentieren modal-view-controller", dann, die zweite Zeile ist:Wie Sie sehen können, Sie nicht haben Verwendung
prepareForSegue
drücken, neue Szene. Verwenden Sie nurprepareForSegue
wenn Sie wollen, um Informationen zu den Ziel-view-controller. Ansonsten ist es nicht nötig.Klar, wenn Sie nicht mit storyboards (z.B., bist du mit Federn), dann wird der Prozess ist ganz anders. Aber ich nehme an, Sie sind nicht mit Federn, weil
prepareForSegue
ist nicht anwendbar in diesem Umfeld. Aber wenn Sie wurden mit Feder, es würde sein, wie folgt:InformationsquelleAutor Rob
[self presentViewController:viewController animated:YES completion:nil];
wird nicht benötigt, da der Wechsel drücken Sie den Ziel-view-controller mit dem übergang, den Sie automatisch ausgewählt.Wenn Sie nicht wollen, verwenden Sie die
segue
Prozess müssen Sie manuell drücken Sie den view-controller:[self presentViewController:viewController animated:YES completion:nil];
aber stellen Sie sicher, entfernen Sie das leitet über in die Storyboard-ersten.
InformationsquelleAutor Richard Brown
InformationsquelleAutor Naman Vaishnav
In meinem Fall alle viewControllers dynamisch erstellt werden. Ich nicht machen, verwenden Sie das storyboard für diesen Zweck. Sollte dies in Ihrem Fall können Sie nur instanziieren Sie die viewController-Klasse, die Sie öffnen möchten, und machen Sie einen push wie in meinem Beispiel unten:
InformationsquelleAutor Mig70