Sadece iOS uygulaması yazıyorum ve "Göster" ve "Ayrıntıyı Göster" segue ile showViewController:sender:
ve showDetailViewController:sender:
kombinasyonunu kullanarak yeni uyarlamalı sunumları kullanıyorum yöntemleri.showViewController'ın programatik karşıtı nedir: gönderen:
Sorum showViewController:sender:
çağırdıktan sonra geri dönmek için programatic yolu nedir nedir? Görünüm denetleyicisinin gösterilme şekli ana içeriğine bağlıdır. Örneğin. UINavigationController
showViewController:sender:
'da gezinme kümesine yeni bir denetleyici iter, ancak denetleyici grafiğinde UIKit konteyneri yoksa, showViewController:sender:
bunun yerine bir sunum yapar.
ben
if (self.navigationController) {
[self.navigationController popViewControllerAnimated:YES];
}
else if (self.presentingViewController){
...
else if ([self.parentViewController isKindOfClass:[CrazyCustomContainer class]]){
[self.parentViewController someWackyUnwindMethod];
}
...
vs ... bu yüzden gösterilmeden tersine çevirmek için genel bir yolu yoktur kontrol etmek olanaksız görünüyor kendi keyfi konteyner denetleyicisi yazabilirsiniz göz önüne alındığında? Gördüğüm tek çözüm, her şey için istekli segues kullanmaktır. Çok sıkıntı yok ama merak ediyorum.
Bunun bir nedeni, bir modelde bir iptal düğmeniz ve normal 'dismissViewControllerAnimated: 'işlevini çağırmanız ve bir navigationController ile geri bir yerleşik düğmenin bulunmasıdır. Bu nedenle, çoğu zaman işten çıkarmaları, tanıtıcı sunumlarınızla aynı şekilde ele almanız gerekmez. –
Ama bu benim nokta: 'showViewController:' bir itme veya sunum yapabilirsiniz. Sunulan görüntü denetleyici ekranda nasıl görüntülendiğini bilmemeli, çünkü [self.navigationController popViewControllerAnimated:] 'gibi bir şey yapmak, eğer sunulmuş olmasından dolayı bazen başarısız olabilirse iyi değildir ... – jackslash
navController pop yapmaya gerek yok. Bir sırt olurdu. –