2009-06-22 22 views
13

क्या इंटरफ़ेस बिल्डर में UISegmentedControl में प्रारंभिक चयनित सेगमेंट सेट करने का कोई तरीका है, या क्या मुझे कोड में ऐसा करना है? यदि यह कोड में है, तो इसे सेट करने के लिए सबसे अच्छी जगह देखें?मैं UISegmentedControl की डिफ़ॉल्ट स्थिति कैसे सेट कर सकता हूं?

उत्तर

11

इंटरफ़ेस बिल्डर में जब आप अपने यूआई पर UISegmentedControl ऑब्जेक्ट का चयन करते हैं, तो गुण फलक में, सेगमेंट नियंत्रण में सेगमेंट ड्रॉप डाउन मेनू होता है, उस सेगमेंट का चयन करें जिसे आप चुनना चाहते हैं (0,1 और इसी तरह) और 'चयनित' इसके नीचे विकल्प।

+0

यह डिफ़ॉल्ट नहीं बदलता !!!! –

+1

ओह या चयनित विकल्प पर क्लिक करें। समझा। धन्यवाद। –

39

कोड से, आप बस self.segmentedControl.selectedSegmentIndex = someDefaultIndex कर सकते हैं।

चाहे आपको इसे viewDidLoad: में सेट करना चाहिए या नहीं, पूरी तरह से आपके आवेदन की संरचना पर निर्भर करता है। उदाहरण के लिए, यदि आपका ऐप पहली बार शुरू हो रहा है और दृश्य को लोड कर रहा है और ऐप के पिछले भाग के दौरान नियंत्रण को सेट करने की आवश्यकता है, तो यह निश्चित रूप से वहां ऐसा करने के लिए समझ में आता है।

+0

+1 धन्यवाद! आकर्षण की तरह काम करता है! –

0

यदि आप स्टोरीबोर्ड का उपयोग नहीं करते हैं और मेरे जैसे कुछ सेटअप/नेटवर्किंग के बाद एक डिफ़ॉल्ट अनुक्रमणिका सेट करना चाहते हैं, तो यह छोटा स्निपेट उपयोगकर्ता के पास कुछ नहीं चुनता है। मैंने इसे UISegmentedControl के अपने उप-वर्ग में रखा, लेकिन आप इसे कहीं भी रख सकते हैं। (स्विफ्ट 3)

Decl: var UISegmentedControlNoSegment: Int { get } 
Desc: A segment index value indicating that there is no selected segment. See selectedSegmentIndex for further information. 

लघु संस्करण:

if selectedSegmentIndex == UISegmentedControlNoSegment { 
    selectedSegmentIndex = initialIndex 
} 

अधिक बड़ा संस्करण

func reloadData() { 
    guard let numberOfItems = dataSource?.numberOfItems() else { 
     return 
    } 

    removeAllSegments() 

    for index in 0...numberOfItems { 
     insertSegment(with: $image, at: index, animated: false) 
    } 

    if selectedSegmentIndex == UISegmentedControlNoSegment { 
     selectedSegmentIndex = initialIndex 
    } 
} 
0

सेगमेंटेड कंट्रोल पर क्लिक करने के बाद आपने सेगमेंट बनाए और जहां आप डिफ़ॉल्ट चाहते हैं उसे चुनें। फिर नीचे इसके द्वारा "चयनित" वाला एक बॉक्स होगा। इसे चुनें और यह डिफ़ॉल्ट होगा।

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