2009-02-18 8 views
11

मैं प्रोग्रामिंग रूप से UITabViewController के टैब को चुनने/बदलने की कोशिश कर रहा हूं।टैब को कैसे बदलें (UITabViewController का) प्रोग्रामेटिक रूप से?

मैं के माध्यम से यह कर की कोशिश की:

self.tabBarController.selectedIndex = 2; 

इस तरह है कि मैं यह करना चाहिए होने के लिए लग रहा है, लेकिन यह काम नहीं करता। मैंने सोचा कि शायद self.tabBarController केवल पढ़ने के लिए ऑब्जेक्ट देता है (मुझे लगता है कि कहीं कहीं पढ़ना याद रखें), लेकिन मुझे यकीन नहीं है कि इसे कैसे काम पर लाया जाए।

किसी भी मदद की सराहना की जाती है!

+0

बस यह सुनिश्चित करने के लिए - क्या आप सही इंडेक्स प्रदान कर रहे हैं? टैब इंडेक्स ** शून्य ** आधारित है, इसलिए दूसरे टैब के लिए आपको इंडेक्स 1 प्रदान करना चाहिए। –

उत्तर

29

सेट selectedViewController:

self.tabBarController.selectedViewController = viewControllerYouWant; 

उदाहरण के लिए,

self.tabBarController.selectedViewController 
    = [self.tabBarController.viewControllers objectAtIndex:2]; 
3

डॉक्स के अनुसार, selectedIndex या selectedViewController गुण आप चाहते हैं और दोनों को आबंटित कर रहे हैं।

टैबबार नियंत्रक संपत्ति केवल पढ़ने योग्य है, लेकिन यह एक ऑब्जेक्ट देता है जो संपादन योग्य है।

तो आपका पूरा कोड मेरे लिए सही दिखता है।

0

मैं कुछ इस तरह कर रहा हूँ:

[root setSelectedViewController: [root.historyController navController]]; 
1

यह मेरे लिए अच्छी तरह से काम करता है, अगर आप सूचकांक द्वारा यह करना चाहते हैं।

[self.tabBarController setSelectedIndex:2]; 
संबंधित मुद्दे