आप आईओएस 5 उपयोग कर रहे हैं आप कुछ इस तरह कर सकते हैं:
- (void) processViewController: (UIViewController *) viewController {
//do something with viewcontroller here
NSLog(@"I'm viewcontroller %@", viewController);
for (UIViewController *childVC in viewController.childViewControllers) {
[self processViewController:childVC];
}
}
और साथ पूरे मज़ा शुरू:
[self processViewController:myRootViewController]; //would be the tabbarcontroller in your case
संपादित करें: मुझे यकीन नहीं है कि आप यहां क्या हासिल करना चाहते हैं, लेकिन यह कोड पूरे पेड़ से गुज़रने के लिए है।
संपादित करें 2:
इस तरह आईओएस 4 कोशिश कुछ के लिए:
- (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];
}
}
}
ध्यान दें: आप जो subviewcontrollers है किसी भी कस्टम ViewController जोड़ने की जरूरत होगी। यदि आपके पास कोई है .. रूट व्यू कंट्रोलर इसे फिर से शुरू कर देता है।
धन्यवाद। अंततः मैं इसे प्रतिनिधि फ़ाइल में नेविगेशन नियंत्रकों की एक कस्टम सरणी बनाने का हल करता हूं, शायद यह बेहतर तरीका नहीं है लेकिन यह काम करता है। – Jimmy