, sen Segue Interface Builder bir "film şeridi id" verin ve sonra şunları yapabilirsiniz:
[self performSegueWithIdentifier:"pushToMyVC" sender:self];
Alternatif olarak, segue gerçekleştirmek istemiyorsanız Hedef görüntü denetleyicisini başlatabilir ve ardından o görüntü denetleyicisine el ile basabilirsiniz. Yapmanız gereken tek şey o zaman can, hedef görünümü denetleyicisi Interface Builder kendi "Film şeridi id" olduğunu emin olmaktır:
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"DestinationController"];
[self.navigationController pushViewController:controller animated:YES];
Sen "itme" (ve dolayısıyla yukarıda pushViewController
kullanılan) söyledi. Eğer gerçekten "bir kalıcı görünümü denetleyicisi sunmak" anlamına, o zaman ikinci bir çizgidir:
[self presentViewController:controller animated:YES completion:nil];
Gördüğünüz gibi, yok yeni sahneye itmek için prepareForSegue
kullanmak var. Hedef görüntü denetleyicisine bilgi aktarmak isterseniz, yalnızca prepareForSegue
kullanın. Aksi takdirde gerekli değildir.
Açıkçası, eğer hikaye tahtalarını kullanmıyorsanız (ör., NIB'leri kullanıyorsunuz), işlem tamamıyla farklıdır. Ancak, NIB'ler kullanmıyorsunuzdur, çünkü bu ortamda prepareForSegue
uygulanabilir değildir. Eğer NIB kullanıyormuş aşağıdaki gibi Ama olurdu: Benim durumumda
SecondViewController *controller = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
[self.navigationController pushViewController:controller animated:YES];
Bu yanıt çok yararlı! – Plagorn