दिलचस्प पोस्ट
टेम्पलेट के साथ ng- शामिल नोड बदलें? शास्त्रीय बनाम प्रोटोटाइप विरासत एंड्रॉइड रिसाइक्लर आइटमों को जोड़ने और हटाने धागे की सूची प्राप्त करें टेम्पलेट क्यों आंशिक रूप से विशेष रूप से नहीं किया जा सकता है? जनहित याचिका का उपयोग करने के लिए सफेद स्थान का ट्रिम करें मैं सीएसएस के साथ एचटीएमएल 5 फॉर्म सत्यापन त्रुटि संदेश कैसे शैली करता हूं? प्रदर्शन त्रुटि PHP.ini बंद करें मिक्स्डस्पेस का मिलान करें, लेकिन नई लाइनें नहीं एंड्रॉइड बिल्डस्क्रिप्ट रिपॉज़िटरीज़: जेन्सेस्टर वी.एस. मेवेनेंद्रल विंडोज़ में होस्टिंग जीआईटी रिपॉजिटरी git: स्विच शाखा और बिना किसी बदलाव को नजरअंदाज करना सी # – जांचें कि क्या फाइल पाठ आधारित है मैं विम के अंदर एक टर्मिनल कैसे चलाऊँ? कोणीय जज: यह देखने के लिए कस्टम निर्देश है कि उपयोगकर्ता नाम मौजूद है या नहीं

झटपट और स्विफ्ट में एक दृश्य नियंत्रक पेश करें

मुद्दा

मैंने Xcode 6 पर नई Swift की एक नज़र Xcode 6 शुरू कर दिया, और मैंने कुछ डेमो परियोजनाओं और ट्यूटोरियल की कोशिश की। अब मैं फंस गया हूं:

इंस्टेंटिअटिंग और फिर एक विशिष्ट स्टोरीबोर्ड से एक viewController पेश करते हुए

उद्देश्य-सी समाधान

 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"myStoryboardName" bundle:nil]; UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"myVCID"]; [self presentViewController:vc animated:YES completion:nil]; 

स्विफ्ट पर यह कैसे प्राप्त करें?

Solutions Collecting From Web of "झटपट और स्विफ्ट में एक दृश्य नियंत्रक पेश करें"

यह सभी नए सिंटैक्स की बात है, कार्यशीलता में बदलाव नहीं हुआ है:

 // Swift 3.0 let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil) let controller = storyboard.instantiateViewController(withIdentifier: "someViewController") self.present(controller, animated: true, completion: nil) 

यदि आपको init(coder:) coder init(coder:) साथ समस्या आ रही है, तो कृपया EridB का उत्तर देखें।

UIViewController को इन्स्तांत करने के लिए @ अकाशिव्स्की के उत्तर का उपयोग करने वाले लोगों के लिए और अपवाद हैं:

गंभीर त्रुटि: कक्षा के लिए अपरिवर्तित प्रारंभिक 'init (coder :)' का उपयोग

जल्द सलाह:

अपने गंतव्य UIViewController पर मैन्युअल रूप से required init?(coder aDecoder: NSCoder) कार्यान्वित करें required init?(coder aDecoder: NSCoder) जिसे आप required init?(coder aDecoder: NSCoder) कोशिश कर रहे हैं

 required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } 

यदि आपको अधिक विवरण की आवश्यकता है तो कृपया यहां मेरा उत्तर देखें

इस लिंक के कार्यान्वयन दोनों हैं:

स्विफ्ट:

 let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("ViewController") as UIViewController self.presentViewController(viewController, animated: false, completion: nil) 

उद्देश्य सी

 UIViewController *viewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"ViewController"]; 

इस लिंक में एक ही स्टोरीबोर्ड में व्यू नियंत्रक की शुरुआत करने के लिए कोड है

 /* Helper to Switch the View based on StoryBoard @param StoryBoard ID as String */ func switchToViewController(identifier: String) { let viewController = self.storyboard?.instantiateViewControllerWithIdentifier(identifier) as! UIViewController self.navigationController?.setViewControllers([viewController], animated: false) } 

आकाशवाणीस्की का उत्तर सिर्फ ठीक काम करता है! लेकिन, अगर आपको प्रस्तुत दृश्य नियंत्रक से कुछ परेशानी वापस आ रही है, तो यह विकल्प सहायक हो सकता है। यह मेरे लिए काम किया!

स्विफ्ट:

 let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil) let vc = storyboard.instantiateViewControllerWithIdentifier("someViewController") as! UIViewController // Alternative way to present the new view controller self.navigationController?.showViewController(vc, sender: nil) 

Obj सी:

 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboardName" bundle:nil]; UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"someViewController"]; [self.navigationController showViewController:vc sender:nil]; 
 // "Main" is name of .storybord file " let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) // "MiniGameView" is the ID given to the ViewController in the interfacebuilder // MiniGameViewController is the CLASS name of the ViewController.swift file acosiated to the ViewController var setViewController = mainStoryboard.instantiateViewControllerWithIdentifier("MiniGameView") as MiniGameViewController var rootViewController = self.window!.rootViewController rootViewController?.presentViewController(setViewController, animated: false, completion: nil) 

जब मैंने इसे AppDelegate में डाल दिया तो यह मेरे लिए ठीक काम किया

यदि आप इसे मौलिक ढंग से प्रस्तुत करना चाहते हैं, तो आपको कुछ ऐसा होना चाहिए, जैसे:

 let vc = self.storyboard!.instantiateViewControllerWithIdentifier("YourViewControllerID") self.showDetailViewController(vc as! YourViewControllerClassName, sender: self) 

अगर आपके पास कोई स्टोरीबोर्ड / एक्सब का उपयोग नहीं करते हुए एक विजिकोट्रॉलर है, तो आप इस विशेष उपकुलपति को नीचे कॉल की तरह पुश कर सकते हैं:

  let vcInstance : UIViewController = yourViewController() self.present(vcInstance, animated: true, completion: nil) 

मुझे पता है कि यह एक पुरानी धागा है, लेकिन मुझे लगता है कि मौजूदा समाधान (दिए गए दृश्य नियंत्रक के लिए हार्डकोड स्ट्रिंग पहचानकर्ता का उपयोग करते हुए) त्रुटियों से बहुत प्रवण है।

मैंने एक बिल्ड टाइम स्क्रिप्ट बनाया है (जो आप यहां पहुंच सकते हैं ), जो दिए गए प्रोजेक्ट के भीतर सभी स्टोरीबोर्ड के दृश्य नियंत्रकों को एक्सेस और इंस्टाल्ट करने के लिए एक संकलक सुरक्षित तरीके से बनाएगा।

उदाहरण के लिए, मेन.स्टोरीबोर्ड में vc1 नामक नियंत्रक को तत्काल तत्काल बनाया जाएगा:

 let vc: UIViewController = R.storyboard.Main.vc1^ // where the '^' character initialize the controller 

स्विफ्ट 3 स्टोरीबोर्ड

 let settingStoryboard : UIStoryboard = UIStoryboard(name: "SettingViewController", bundle: nil) let settingVC = settingStoryboard.instantiateViewController(withIdentifier: "SettingViewController") as! SettingViewController self.present(settingVC, animated: true, completion: { })