2016-01-30 3 views
5

ऐप लॉन्च पर, मेरे पास रूट दृश्य नियंत्रक के रूप में UITabBarController है। इस टैब बार के लिए, मेरे पास कुल 7 व्यू कंट्रोलर हैं। विधि application(application:didFinishLaunchingWithOptions:) में AppDelegate.swift अंदर, अगर मैं निम्नलिखित है, यह ठीक से काम करता है:ऐप लॉन्च पर UITabBarController के लिए 3 से अधिक इंडेक्स का चयन करें

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     // Override point for customization after application launch. 
     self.tabBarController = self.window?.rootViewController as! UITabBarController 
     self.tabBarController.selectedIndex = 2 

     return true 
    } 

यह पूरी तरह से काम करता है और जब आवेदन शुरू की है टैब बार में तीसरे जा सकते हैं।

लेकिन, जब मैं किसी भी आइटम को चुनना चाहता हूं जो अधिक नेविगेशन नियंत्रक (जिसका अर्थ है 3 से अधिक किसी भी इंडेक्स) के तहत चला गया है, self.tabBarController.selectedIndex = 5 बस काम नहीं करता है। ऐप लॉन्च पूरा होने के बाद उल्लिखित बयान किसी भी हिस्से में काम करता है, यानी, अगर मैं self.tabBarController.selectedIndex = 5 को पहले व्यू कंट्रोलर के viewDidAppear के अंदर करता हूं, तो यह काम करता है; लेकिन यह ऐप लॉन्च के समय काम नहीं करता है, यानी application(application:didFinishLaunchingWithOptions:) में। लॉन्च होने के बाद चयनित टैब टैब बार डिफ़ॉल्ट पर रहता है। एप लॉन्च पर मैं चयनित इंडेक्स को 3 से आगे कैसे बदल सकता हूं (जो moreNavigationController के तहत जाता है)?

+0

http://stackoverflow.com/a/33375674/2303865 –

+0

@ लियो डबस, मैं एप्लिकेशन लॉन्च पर पुश अधिसूचना के गहरे लिंक को संभालना चाहता हूं। इसलिए यदि मेरा ऐप नहीं चल रहा है और पुश अधिसूचना प्राप्त हो रही है, तो मैं पुश अधिसूचना पर क्लिक करता हूं। इस बिंदु पर 'एप्लिकेशन (एप्लिकेशन: didFinishLaunchingWithOptions:)' ट्रिगर किया गया है, लेकिन पहले देखें नियंत्रक अभी भी लोड नहीं हुआ है, इसलिए मेरे पर्यवेक्षक इस बिंदु पर कैसे काम करेंगे क्योंकि व्यू कंट्रोलर इंस्टेंस देखने के लिए उपलब्ध नहीं है? –

+0

मैंने आपके सुझाव की कोशिश की। दुर्भाग्यवश यह काम नहीं कर रहा है :( –

उत्तर

0

आप स्टोरीबोर्ड उपयोग कर रहे हैं

// Override point for customization after application launch. 
     self.tabBarController = self.window?.rootViewController as! UITabBarController 
     self.tabBarController.selectedIndex = 2 
     self.tabBarController.view.layoutIfNeeded() 

     return true 
0

जोड़ने का प्रयास करें। This उत्तर मेरे लिए काम किया है आप अपने टैबबार नियंत्रक वर्ग में एक निरीक्षण योग्य var बना सकते हैं और स्टोरीबोर्ड में इंडेक्स नंबर निर्दिष्ट कर सकते हैं।

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