2013-09-26 16 views
8

से एक व्यू कंट्रोलर प्रारंभ करने का प्रयास कर रहा है मेरे पास मुख्य स्टोरीबोर्ड में एक दृश्य नियंत्रक रखा गया है, लेकिन जब मैं दृश्य नियंत्रक को प्रारंभ करने और लोड करने का प्रयास करता हूं तो मेरा ऐप क्रैश हो जाता है। मैं जिस एक्सकोड संस्करण का उपयोग कर रहा हूं वह वास्तव में मुझे ठीक से त्रुटियों को नहीं बताता है, लेकिन मैंने देखा कि यह मुझे सिगबर्ट सिग्नल दे रहा था। मुझे नहीं पता कि यह क्यों काम नहीं कर रहा है।स्टोरीबोर्ड

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil]; 
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SelectDateViewController"]; 
    [vc setModalPresentationStyle:UIModalPresentationFullScreen]; 

    [self presentModalViewController:vc animated:YES]; 

इस तरह मैंने इसे बुलाया। मेरे द्वारा उपयोग किए जाने वाले सभी नाम सही हैं लेकिन मुझे अभी भी समझ में नहीं आता कि यह क्यों दुर्घटनाग्रस्त हो रहा है।

+0

जब आप एप्लिकेशन बनाया है, आप स्टोरीबोर्ड के साथ शुरू करने के लिए सक्षम किया? – erdekhayser

+0

@foriinrangeawesome हाँ हाँ मैंने किया था। –

उत्तर

0

[self presentModalViewController:vc animated:YES]; बहिष्कृत किया गया है।

प्रयास करें: [self presentViewController:vc animated:YES completion:nil];

+0

यह बहुत अच्छा कारण हो सकता है। मुझे आश्चर्य है कि क्यों वह उसे चेतावनी नहीं देता है। – erdekhayser

6

(स्टोरीबोर्ड और भी) अंतिम पंक्ति पर एक ब्रेकपाइंट सेट कुलपति सत्यापित करने के लिए नहीं के बराबर नहीं हैं।

वर्तमान मॉड्यूल व्यू कंट्रोलर क्रैश हो जाएगा यदि उसका दृश्य नियंत्रक तर्क शून्य है।

यदि दोनों शून्य हैं, तो आपके स्टोरीबोर्ड नाम की संभावना गलत है (कम संभावना है)।

यदि केवल वीसी शून्य है तो पहचानकर्ता गलत है (या तो कोड या स्टोरीबोर्ड में)। सुनिश्चित करें कि वीसी की स्टोरीबोर्ड आईडी (जैसा कि स्क्रीनशॉट में घूमता है) आपके विवरण से मेल खाता है। यह परंपरागत है कि इसके लिए कक्षा का नाम न चुनें (क्योंकि आपके स्टोरीबोर्ड में किसी दिए गए वर्ग के एक से अधिक उदाहरण हो सकते हैं)।

स्टोरीबोर्ड आईडी केस संवेदनशील है और यह अद्वितीय होना चाहिए। मुझे यह सुनिश्चित करने के लिए निश्चित अग्नि तरीका है कि दृश्य नियंत्रक का चयन करने के बाद उस क्षेत्र में नाम टाइप करें और अंत संपादन पर वापस दबाएं (केवल फ़ील्ड को क्लिक न करें)। मैंने देखा है कि एक्सकोड 4 से 5 में परिवर्तित होने पर स्टोरीबोर्ड में होने वाले कुछ भ्रष्टाचार और इसके विपरीत, इसलिए प्लिस्ट/एक्सएमएल में डाइविंग भी मदद कर सकता है।

Storyboard ID

संपादित करें: इसके अलावा जब यह कहा जाता है के समय महत्वपूर्ण है, presentModalViewController not working देखते हैं। सुनिश्चित करें कि संदेश प्राप्त करने वाला व्यू कंट्रोलर पहले से ही दिखाया गया है (यानी viewDidAppear में कॉल किया गया है, देखें DidLoad नहीं)।

अब्दुल्ला द्वारा उल्लेख किया है, आप की संभावना पदावनत विधि के लिए रवाना बढ़ना चाहिए:

[self presentViewController:vc animated:YES completion:nil]; 

इस मामले पूरा होने के ब्लॉक मुद्दे के बिना नहीं के बराबर हो सकता है में, लेकिन कुलपति नहीं होना चाहिए।

0

क्या आपने स्टोरीबोर्ड से प्रारंभिक व्यू कंट्रोलर सेट किया था? यदि हां तो सुनिश्चित करें कि आपकी स्टोरीबोर्ड आईडी समान है। आप स्टोरीबोर्ड का उपयोग कर रहे हैं, तो आप कर सकते हैं सीधे वर्तमान या ViewController के लिए यह

आशा कोड लिखने की कोई जरूरत को खारिज इस मदद आप :)