2015-10-12 12 views
5

मैं प्रारंभिक दृश्य नियंत्रक के रूप में स्टोरीबोर्ड में एक TabBarController हैTabBarController रिटर्न अशक्त

enter image description here

enter image description here

कैसे इस वापसी अशक्त

UITabBarController* tabbarController = (UITabBarController*) self.tabBarController; 
NSLog(@"%@",tabbarController); 
NSLog(@"%@",self.navigationController.tabBarController); 

मूल रूप से मैं क्या

करने के लिए कोशिश कर रहा हूँ करता है
NSMutableArray *newTabs = [NSMutableArray arrayWithArray:[self.tabBarController viewControllers]]; 
NSLog(@"\n\n\n%lu\n\n\n",(unsigned long)[newTabs count]); 
NSLog(@"self.tabBarController.viewControllers %@ \n\n",self.tabBarController); 
[newTabs removeObjectAtIndex: 1]; 
[self.tabBarController setViewControllers:newTabs]; 

मुझे शून्य क्यों मिल रहा है?

+0

जहां इस कोड है जोड़ सकता हूँ? किस विधि में बुलाया जा रहा है? – Leonardo

+0

इसे 'XCTabViewController.m' में 5 सेकंड सेकंड में देखा गया है' [स्वयं प्रदर्शन चयनकर्ता: @ चयनकर्ता (देरी) के साथ ऑब्जेक्ट: शून्य बाद के बाद: 5]; ' –

+1

फिर, 'स्वयं' UITabBarController नहीं होगा? 'Self.tabBarController' – Leonardo

उत्तर

4

कारण अशक्त दिया जाता है, कि self पर self.tabBarController

आपका कोड आपके कुछ भी UITabBarController, इसलिए, यह नहीं है इस तरह दिखना चाहिए है:

NSMutableArray *newTabs = [NSMutableArray arrayWithArray:[self viewControllers]]; 
NSLog(@"\n\n\n%lu\n\n\n",(unsigned long)[newTabs count]); 
NSLog(@"self.viewControllers %@ \n\n",self); 
[newTabs removeObjectAtIndex: 1]; 
[self setViewControllers:newTabs]; 
1

चेक बाहर जो उत्तर self.tabBarController is NULL

आप एक नेविगेशन नियंत्रक है, तो आप अपने YourTabBarViewController.h फ़ाइल को यह जोड़ने की जरूरत है

@property (nonatomic, retain) UITabBarController * myTabBarController; 

फिर viewDidLoad में YourTabBarViewController.m फ़ाइल में सिर्फ स्वयं के लिए असाइन करें और प्रतिनिधि

self.myTabBarController = self; 
self.myTabBarController.delegate = self; 
संबंधित मुद्दे