2015-08-16 10 views
5

के लिए उपलब्धता देखने मैं एक मौजूदा आईओएस अनुप्रयोग है जो आईओएस 8. से समर्थन करता है, मैं केवल iOS 9. लिएस्विफ्ट 2 एपीआई स्टोरीबोर्ड

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

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

    let storyboard: UIStoryboard 
    if #available(iOS 9, *, *) { 
     storyboard = UIStoryboard(name: "Main", bundle: nil) 
    } else { 
     storyboard = UIStoryboard(name: "MainOld", bundle: nil) 
    } 
    let mainViewController = storyboard.instantiateInitialViewController() 
    window?.rootViewController = mainViewController 
    window?.makeKeyAndVisible() 
    return true 
} 

लेकिन मैं Main.storyboard पर संकलन त्रुटि हो रही है "UIStackView आईओएस 9.0 से पहले"

मैं Xcode 7 उपयोग कर रहा हूँ बीटा 5.

कैसे iOS पर आईओएस 9 संबंधित सुविधाओं का उपयोग करने स्विफ्ट 2 # उपलब्धता उपलब्धता का उपयोग कर 8 समर्थित परियोजनाएं

+0

हो सकता है कि इससे आपकी मदद मिलेगी: https://forums.developer.apple.com/thread/6773 – Bannings

+0

@ बैनिंग्स, डेवलपर फोरम टिप्पणी आईओएस 9 पर तैनाती लक्ष्य को बदलने का सुझाव देती है। लेकिन मैं चाहता हूं कि मेरे ऐप को आईओएस 9 के लिए आईओएस 8 से समर्थन देना चाहिए, मैं नई सुविधा जोड़ना चाहता हूं। जैसे ही स्विफ्ट सुविधा स्तर को सत्यापित करने के लिए भाषा स्तर समर्थन # उपलब्ध कराता है। मुझे उचित सत्यापन जोड़ने में सक्षम होना चाहिए। – jpsasi

+0

त्रुटि स्टोरीबोर्ड से है जो भी आप उपयोग कर रहे हैं # उपलब्ध या नहीं। – Bannings

उत्तर

3

मुझे एप्पल कोको डेवलपर ईमेल सूची पर क्वीन्सी मॉरिस का जवाब मिला है।

डिफ़ॉल्ट रूप से स्टोरीबोर्ड फ़ाइल के लिए फ़ाइल निरीक्षक में की स्थापना के लिए बिल्ड कि "तैनाती लक्ष्य" है, जो iOS 8 है, इसलिए संकलक त्रुटि फेंकता है।

यदि मैं आईओएस 9 सुविधाओं का उपयोग करने वाले स्टोरीबोर्ड पर आईओएस 9 में "बिल्ड के लिए" सेटिंग बदलता हूं। कोई त्रुटि नहीं, एप्लिकेशन आईओएस 8 और आईओएस 9 दोनों में चलता है।

2

आप स्टोरीबोर्ड में ऐसी #availability सुविधा का उपयोग नहीं कर सकते हैं। यदि आप UIStackView के साथ आईओएस 8 का समर्थन करना चाहते हैं, तो आपको कोड से UIStackView बनाना चाहिए, या तीसरे पक्ष के संगत पुस्तकालयों का उपयोग करना चाहिए। OAStackView या TZStackView की तरह।

+0

हम स्टोरीबोर्ड में आईओएस 9 फीचर का उपयोग कर सकते हैं जिसे आईओएस 9 उपकरणों के लिए लक्षित किया गया है। कृपया मेरा जवाब देखें। जैसा कि आपने सुझाव दिया है, अगर मैं आईओएस 8 में स्टैकव्यू को कार्यान्वित करना चाहता हूं, तो मैं आपके द्वारा उल्लेखित ओपन सोर्स का उपयोग कर सकता हूं। – jpsasi

+0

@jpsasi आप निश्चित रूप से सही हैं। धन्यवाद! –

1

मैंने दो स्टोरीबोर्ड बनाए हैं, एक आईओएस 8 के लिए और दूसरा आईओएस 9 और उसके बाद के संस्करण के लिए बनाया है। आईओएस 9 स्टोरीबोर्ड के लिए फ़ाइल निरीक्षक के पास जाओ और iOS से 9 तक कम से कम का लक्ष्य रखा, iOS8 एक आईओएस 8, कोड में फिर

Set to iOS9 in storyboard

सेट जहाँ आप उस के लिए प्रारंभिक दृश्य नियंत्रक बनाने स्टोरीबोर्ड उपयोग:

if #available(iOS 9.0, *) { 
    // create view controller from iOS 9 storyboard 
} else { 
    //create view controller from iOS 8 storyboard 
} 

त्रुटियों को तब जाना चाहिए। जाहिर है, यह प्रबंधित करने के लिए और अधिक कोड है लेकिन आप अपना मूल यूआईएसटीक प्राप्त करते हैं और जब आप आईओएस 8 समर्थन छोड़ते हैं तो आपके पास अभी भी पूरी तरह से काम कर रहे आईओएस 9 स्टोरीबोर्ड

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