2012-05-03 13 views
9

किसी एप्लिकेशन पर प्रारंभिक टैब बार चयन को बदलने में समस्याएं कैसे हैं (यानी मध्य टैब को बाएं टैब के बजाए ऐप लॉन्च पर चुना जाता है)। ऐप स्टोरीबोर्ड का उपयोग करता है और टैबबार नियंत्रक को बाद में स्टोरीबोर्ड विधि के माध्यम से विकास में जोड़ा गया था।प्रारंभिक टैब बार चयन को प्रोग्रामेटिक रूप से

tabBarController.selectedIndex = 1; 

ऊपर कोड काम नहीं करता है (क्योंकि मैं एक कस्टम दृश्य नियंत्रक मेरी टैब बार, बस डिफ़ॉल्ट UITabBarController से जुड़ा नहीं है):

कुछ Googling हो गया और कई विभिन्न संसाधनों को देखा और उस ऐप के लिए समाधान नहीं मिला है जिसे शुरू में ऐप्पल के टेम्पलेट टैब बार एप्लिकेशन का उपयोग करके नहीं बनाया गया था।

+0

इस परियोजना के लिए प्रारंभिक दृश्य नियंत्रक है या यह एक और दृश्य नियंत्रक से धक्का दे दिया जाता है:

AppDelegate.m में, अपने application:didFinishLaunchingWithOptions: विधि के लिए निम्न जोड़ सकता हूँ? – lnafziger

+0

टैब बार नियंत्रक प्रारंभिक दृश्य नियंत्रक है। – LazerLex

उत्तर

28

में इस का उपयोग कर के बाद से इस प्रारंभिक दृश्य नियंत्रक है, और एक उपवर्ग नहीं है कोशिश, आप अपने AppDelegate में इस सेट करना होगा।

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 

    // Select the left-most tab of our initial tab bar controller: 
    UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController; 
    tabBar.selectedIndex = 0; 
    return YES; 
} 
+2

आप शानदार हैं। पूरी तरह से काम किया। समझ में आता है मुझे इसे AppDelegate में करना होगा क्योंकि यह प्रारंभिक दृश्य नियंत्रक है। धन्यवाद। – LazerLex

+1

भविष्य के संदर्भ के लिए, ऐसी स्थिति में जहां आपको कुछ ऐसा करने की आवश्यकता है और यह प्रारंभिक दृश्य नियंत्रक नहीं है, तो आप उस दृश्य में 'readyForSegue' से अधिक सवारी करेंगे जो लोड होने से पहले है और इसे वहां से सेट करें। – lnafziger

1

tabBar setSelectedItem: अपने viewDidLoad

+0

जो काम नहीं करता है क्योंकि मेरे पास मेरे टैब बार (व्यूडिडलोड विधि के साथ) के लिए एक विशिष्ट दृश्य नियंत्रक नहीं है। मेरे पास टैब टैब के लिए आउटलेट नहीं बनाया गया है। यह सिर्फ स्टोरीबोर्ड में बनाया गया डिफ़ॉल्ट है। – LazerLex

+0

मैंने एक दृश्य नियंत्रक.h और .m जोड़ा और इसे मेरे TabBarController से कनेक्ट किया। मैंने एक UITabBarController आउटलेट बनाया और चयनित इंडेक्स का उपयोग किया। और फिर आपने जो कहा वह कोशिश की (एक यूआईटीएबीबार आउटलेट बनाना और सेट सेलेटेड इटैम का उपयोग करना) और अभी भी कुछ भी नहीं:/ – LazerLex

संबंधित मुद्दे