olan ve UITabBarController
görüntüyü içeren bir uygulamaya sahibim. Bu UITabBarController
, biri UIViewController
, EventInformationViewController
örneğinin gösterildiği dört sekme içerir. Bu özel görünüm denetleyicisindeki bir düğme sırasıyla başka bir özel görünüm denetleyicisini EventRatingAddViewController
görüntüye iter. Bu görünüm denetleyicisindeki bir eylem, EventInformationViewController
örneğinde bir yöntemi çağırmalıdır. Aşağıdaki kod yerine uygulama kazasında yapar:Görünür görünüm denetleyicisine itilen görünüm denetleyicisine gidin
// get the index of the visible VC on the stack
int myIindex = [self.navigationController.viewControllers indexOfObject:self.navigationController.visibleViewController];
// get a reference to the previous VC
EventInformationViewController *prevVC = (EventInformationViewController *)[self.navigationController.viewControllers objectAtIndex:myIindex - 1];
[prevVC performSelector:@selector(rateCurrentEvent:)];
Ben viewControllers mülkiyet navigasyon yığını üzerindeki tüm VC bir dizi devam düşünce, böylece endeks şu anda görünür bir eksi bir itti VC işaret etmelidir Şu anda görünür VC görünümünde. Aksine, benim UITabBarController
işaret edecek görünüyor:
-[UITabBarController rateCurrentEvent:]: unrecognized selector sent to instance
alana ne olduğunu ve daha da önemlisi, nasıl görünümüne öğe hâlihazırda VC itti VC için bir işaretçi alabilirim?
DÜZENLEME: EventRatingAddViewController
için bir delege protokolü oluşturup delege olarak EventInformationViewController
'u atadım. Bu iyi çalışıyor - hala navigasyon yığını üzerinden itme VC erişmek için bir yol olmalı diye düşünüyorum.
Sorunuza bir cevap değil, ama '.visibleViewController' yerine' .topViewController' yerine kullanmalısınız, çünkü ikincisi navigasyon kontrolör yığınınızla hiçbir ilgisi olmayan bir moda sunulan görünüm denetleyicisi olabilir! –
'myIindex' günlüğünü ve bu UITabBarController dizinini kaydetmeyi denediniz mi? –
topViewController hakkında iyi bir nokta. Uygulamamda model VC'ler olmadığı için bu durumda bir fark yaratmıyor. Görünen VC, endeksi 2, UITabBarController 1'i alır. – mvexel