2012-12-20 15 views
5

में किसी विशिष्ट टैब में ऐप खोलें मेरे पास 5 टैब के साथ टैबबार वाला कोई ऐप है (कोई कस्टम क्लास वाला नियमित टैब बार)। जब मैं ऐप शुरू करता हूं तो बायां टैब खोला जाता है। मैं इसे पहले मध्य खोलना चाहता हूं। मैं ViewController कि पहले खोला है की viewDidLoad मेंटैबबार

[self.tabBarController setSelectedIndex:3]; 

डालने की कोशिश की है लेकिन टैब स्विचन नहीं है। मैं इसे हाइलाइट कर सकता हूं लेकिन चयनित नहीं है। यदि मैं ऊपर कोड को viewWillAppear के तहत डालता हूं तो इसे पहले रन पर चुना जाएगा, लेकिन जब मैं समय-समय पर बाएं टैब का चयन करूंगा तो यह मध्य में कूद जाएगा।

DetailsViewController* vc = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailsViewController"]; 
[self.navigationController pushViewController:vc animated:true];  

क्या मैं गलत कर रहा हूँ:

भी सफलता के बिना इस की कोशिश की?

+1

क्या टैबबार इंटरफेस बिल्डर से जोड़ा गया है या कोड का उपयोग कर रहा है? –

+0

इंटरफ़ेस। और ट्रिगर किए गए सेगौस को कंट्रोलर – Segev

+0

देखने के लिए खींचें शायद [अगला लिंक] (http://stackoverflow.com/questions/4195316/iphone-how-i-hide-a-tab-bar-button) अगर मैं आपको सही ढंग से समझता हूं तो आपकी मदद करता है। – Neznajka

उत्तर

8

यह एकमात्र समाधान है जो मेरे लिए काम करता है। appdelegate में:

UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController; 
[tabBar setSelectedIndex:2]; 
0

tabBarController.selectedIndex = desiredIndex; 

अंदर applicationDidLaunch कॉल करने के लिए की जरूरत है।

+0

यह मेरे लिए काम नहीं करता है। – Segev

0

आवेदन में यह सेट करके देखें: didFinishLaunchingWithOptions: यदि आपके tabbar नियंत्रक की तरह

`[self.window.rootViewController.tabBarController setSelectedIndex:3];` 
+0

मेरे 'appdelegate' में? यह – Segev

0

TabBarController के लिए और

-(void) viewDidLoad 
{ 
    [self.tabBarController setSelectedIndex:3]; 
} 
0

मैं कुछ किया है कि कस्टम कक्षा में स्टोरीबोर्ड सेट कस्टम कक्षा में rootViewController है अतीत में हैकिश। मैं प्रत्येक टैब सक्रिय बनने के लिए के लिए क्रम में पाया है, मेरे applicationDidFinishLaunching में, मैं पाश की जरूरत है के माध्यम से अपने सभी दृश्य नियंत्रकों तो "देखें" संपत्ति का उपयोग:

for(viewController in arrayOfViewController) 
{ 
    // will load the view controller into memory 
    [viewController view]; 
} 

आप किसी भी उपयोग कर सकते हैं, तो पता नहीं इसका

+0

बुरा काम नहीं करता + मैं नहीं देख सकता कि यह क्यों मदद करनी चाहिए ... –