2011-10-18 17 views

cevap

8

Erişim onları böyle Codewise: iOS 5 kullanıyorsanız

NSArray * controllerArray = [[self navigationController] viewControllers]; 

for (UIViewController *controller in controllerArray){ 
    //Code here.. e.g. print their titles to see the array setup; 
    NSLog(@"%@",controller.title); 
} 
+0

Teşekkür ederiz. Sonunda delege dosyasında özel bir navigationControllers dizisi oluşturarak çözüyorum, belki de daha iyi bir yol değil ama işe yarıyor. – Jimmy

4

böyle bir şey yapabilirsiniz:

- (void) processViewController: (UIViewController *) viewController { 
    //do something with viewcontroller here 
    NSLog(@"I'm viewcontroller %@", viewController); 
    for (UIViewController *childVC in viewController.childViewControllers) { 
     [self processViewController:childVC]; 
    } 
} 

ve ile tüm eğlence başlar:

[self processViewController:myRootViewController]; //would be the tabbarcontroller in your case 

Düzenleme: Burada neye ulaşmak istediğinizden emin değilim, ancak bu kod tüm ağacın içinden geçmek içindir.

Düzenleme 2:

bu gibi iOS 4 deneyin şey için

:

- (void) processViewController: (UIViewController *) viewController { 
    //do something with viewcontroller here 
    NSLog(@"I'm viewcontroller %@", viewController); 

    if ([viewController isKindOfClass:[UITabBarController class]]) { 
     for (UIViewController *childVC in ((UITabBarController *)viewController).viewControllers) { 
      [self processViewController:childVC]; 
     } 
    } 
    else if ([viewController isKindOfClass:[UINavigationController class]]) { 
     for (UIViewController *childVC in ((UINavigationController *)viewController).viewControllers) { 
      [self processViewController:childVC]; 
     } 
    } 
} 

Not: subviewcontrollers sahip herhangi bir özel viewcontroller eklemeniz gerekir. Eğer varsa .. Kök Viewcontroller tekrar başladı.

+0

Teşekkürler, ancak bu projede iOS 5 kullanamıyorum:/ – Jimmy

+0

Yardımlarınız için teşekkürler. Sonunda, özel bir dizi gezinti çubuğuyla çözüyorum çünkü özyinelemeli bir yöntem kullanamıyorum. Belki de daha iyi bir yol değil ama işe yarıyor. – Jimmy

+0

MevcutViewController tarafından eklenen modal view denetleyicileri algılamıyor: canlandırılmış: – Lukasz

İlgili konular