2012-10-30 14 views
37

क्या कोई मुझे बता सकता है कि आईओएस में स्टोरीबोर्ड का उपयोग करते समय डिफ़ॉल्ट टैब कैसे सेट करें। मैं यह समझने के लिए प्रतीत नहीं कर सकता कि इसे कैसे पूरा किया जाए।स्टोरीबोर्ड का उपयोग करते समय डिफ़ॉल्ट टैब सेट करना

धन्यवाद

+0

डिफ़ॉल्ट टैब से आपका क्या मतलब है? क्या आप टैबबार नियंत्रक का उपयोग कर रहे हैं और अपना ऐप लॉन्च करते समय पहले टैब का चयन करने का प्रयास कर रहे हैं ?? –

+0

कृपया सुनिश्चित करें कि आपका प्रश्न वर्णनात्मक है और आपकी स्वीकार्य दर भी सुधारता है .. –

+0

मैंने स्टोरी बोर्ड का उपयोग करके एक टैब्ड एप्लिकेशन बनाया है और मैं इसे सेट करना चाहता हूं ताकि ऐप लॉन्च होने पर दूसरा टैब चुना जा सके। – user1145581

उत्तर

8

आप इन दो तरीकों में से एक का उपयोग कर सकते हैं:

tabBar.items = tabBarItems; 
tabBar.selectedItem = [tabBarItems objectAtIndex:0]; 

या वस्तु

[tabBar setSelectedItem:myUITabBarItem]; 

से एक प्रत्यक्ष विधि या यदि आप ऐसा करने के लिए उन्हें गठबंधन कर सकते हैं:

tabBar.items = tabBarItems; 
[tabBar setSelectedItem:[tabBarItems objectAtIndex:0]]; 

लेकिन मैंने अभी तक उस विधि का परीक्षण किया है, उम्मीद है कि इससे मदद मिलती है!

+0

मैं टैबबार नियंत्रक के लिए आउटलेट प्रॉपर्टी कैसे बना सकता हूं? कृपया मुझे बताएं क्योंकि मैं स्टोरीबोर्ड –

+0

पर नया हूं, मैं व्यक्तिगत रूप से स्टोरी बोर्डिंग पर चूसता हूं, अगर आप चाहें तो मैं आपको कुछ कोड भेज सकता हूं? –

+0

मुझे सटीक कोड खोजने और इसे पेस्टबिन पर रखने की कोशिश करें, अन्यथा बीआई इसे ज़िप करें और इसे मेरी वेबसाइट –

21

निम्नलिखित कोड मेरे लिए काम किया:

UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController; 
tabBarController.selectedIndex = 2; 
+0

यह कोड मानता है कि rootViewController टैबबार नियंत्रक है। जो हमेशा सच नहीं हो सकता है। – oyalhi

24
  1. UITabBarController की एक नई फ़ाइल उपवर्ग बनाएं; के रूप में कस्टम वर्ग इस नई फ़ाइल अपने स्टोरीबोर्ड का UITabBarController में

    self.selectedIndex = 1;

  2. सेट:

  3. viewDidLoad के अंत में इस जोड़े।

आप कर चुके हैं।

+0

ग्रेट सॉल्यूशन पूरी तरह से काम किया! – sabir

94

जबकि आप कोड को छू के बिना अपने स्टोरीबोर्ड में एक ही प्राप्त करने के लिए आप निम्न प्रदर्शन करेंगे प्रोग्राम के रूप में अन्य उत्तर की तरह प्रारंभिक चयनित टैब सेट कर सकते हैं,:

  1. स्टोरीबोर्ड इंटरफ़ेस
  2. में टैब बार नियंत्रक का चयन करें
  3. उपयोगिताएँ पैनल में पहचान इंस्पेक्टर दिखाएँ
  4. एक नया "उपयोगकर्ता निर्धारित क्रम गुण"
  5. कुंजी पथ सेट जोड़ें "SelectedIndex"
  6. प्रकार सेट करें "संख्या"
  7. टैब आप चयन करना चाहते हैं के सूचकांक को मान सेट करने के लिए,
  8. सहेजें स्टोरीबोर्ड (1 का मान उदाहरण के लिए दूसरे टैब का चयन होता है) का निर्माण और एप्लिकेशन को चलाने के

यह होना चाहिए कि यह जब आप ऊपर के चरणों को हासिल कर लिया है जैसा दिखता है:

+1

यह एक्सकोड 6.3, आईओएस 8 में विफल रहता है। – friedbunny

+0

यह अभी भी मेरे लिए एक्सकोड 6.3.1, आईओएस 8.3 पर काम करता है - आपके पास जेसन होने वाले मुद्दे पर कोई और जानकारी है? –

+0

उस मामले में मेरे अंत में संभावित अजीबता; यह '_NSSetUsingKeyValueSetter' पर एक क्रैश है: http://pastie.org/10185899 – friedbunny

50

overkill की तरह लग सकता है कुछ UITabBarController उपवर्ग के लिए, लेकिन, मैं यह साफ रों प्रदान करता है लगता है olution।

  1. बनाएं BaseTabBarController.swift
  2. viewDidLoad में एक @IBInspectable जोड़ें और यह सेट:

    class BaseTabBarController: UITabBarController { 
    
        @IBInspectable var defaultIndex: Int = 0 
    
        override func viewDidLoad() { 
         super.viewDidLoad() 
         selectedIndex = defaultIndex 
        } 
    
    } 
    
  3. स्टोरीबोर्ड में, आप UITabBarController सेट अपने नए उपवर्ग होने के लिए:

enter image description here

  1. जाएं गुण निरीक्षक सेट जोड़ने नई संपत्ति डिफ़ॉल्ट सूचकांक:

enter image description here

  1. टा -da! (:।
+0

वास्तव में पुन: उपयोगिता के लिए एक शानदार समाधान है, और यदि आवश्यक हो तो इसे कोड में प्रबंधित करने की अनुमति देने के लिए पर्याप्त लचीला है। – brandonscript

+0

शानदार समाधान @Aviel। धन्यवाद। – iamyogish

+0

वार्षिक बूम! डायनामाइट चला जाता है - यह काम करता है (एक्सकोड 7.3.1)। धन्यवाद – Jeeves

1

AppDelegate में applicationDidBecomeActive समारोह खोजने के लिए और इस लाइनों

let tabBarController = self.window?.rootViewController as! UITabBarController 
tabBarController.selectedIndex = 0 // any index you want 
+0

आप कैसे जानते हैं कि rootViewController हमेशा टैबबार नियंत्रक है? – oyalhi

+0

जब हम टैब बार का उपयोग कर रहे हैं, डिफ़ॉल्ट रूप से टैबबार नियंत्रक रूटव्यू कंट्रोलर है। जब तक कि आपने प्रारंभिककरण – zizutg

2

जोड़ने TabBarController की viewDidLoad() में, जो कुछ भी आप चाहते हैं कि selectedIndex सेट (0 पहले हो सकता है, 3 चौथे होगा , आदि)

1

आप इसे एक्सकोड 8 या बाद में प्राप्त कर सकते हैं (बस इसका परीक्षण किया है और यह नहीं पता कि यह इस संस्करण से पहले उपलब्ध है या नहीं)

चरणों करो के रूप में @Joshua फिंच ने कहा कि लेकिन:

  1. TabBar
  2. "उपयोगकर्ता निर्धारित क्रम गुण"
  3. जोड़ें नया कुंजी
  4. नाम करने के लिए यह "चयनित गॉट के बजाय बार आइटम का चयन करें "
+0

"xcode 8 या इससे पहले" के बाद रूटव्यू कंट्रोलर को अन्यथा नहीं बदला: क्या आपका वास्तव में "पहले" मतलब था? ऐसा लगता है कि निम्नलिखित वाक्य का खंडन है, "अगर यह इस संस्करण से पहले उपलब्ध है"। शायद आप "8 या अधिक" मतलब था? –

0

बिल्डिंग Aviel सकल पर 'जवाब बूलियन के लिए और सही चयन/या जाँच चेकबॉक्स अपने प्रकार सेट करें, मैं j UITabBarController के विपरीत, ust एक UITabBar के लिए इसे लागू करना चाहता था। यह निम्नानुसार किया जा सकता है:

class BaseTabBar: UITabBar { 

    @IBInspectable var defaultIndex: Int = 0 { 
     didSet { 
      self.selectedItem = self.items?[defaultIndex] 
     } 
    } 
} 
संबंधित मुद्दे