2011-11-02 13 views
28

शायद एक साधारण समाधान है लेकिन मैं इसे समझ नहीं सकता।स्टोरीबोर्ड पर एक नया व्यू कंट्रोलर लिंक करना?

मैं इंटरफ़ेस के लिए स्टोरीबोर्ड का उपयोग कर रहा हूं।

मैं एक टैब बार नियंत्रक से शुरू करता हूं, लेकिन उपयोगकर्ता को ऐप का उपयोग करने की अनुमति देने से पहले उपयोगकर्ता को खुद को एक लॉगिनव्यू को प्रमाणित करना होता है जिसे प्रारंभ में सामान्य रूप से धक्का दिया जाता है।

मैं उसी स्टोरीबोर्ड पर लॉगिनव्यू कॉन्फ़िगर करना चाहता हूं, लेकिन मैं स्टोरीबोर्ड और मेरे कोड पर दृश्य नियंत्रक को लिंक करने का तरीका समझने के लिए सीम नहीं कर सकता।

मैंने क्या किया:

  • एक नया UIViewController उपवर्ग गर्त फ़ाइल> नया> नई फ़ाइल बनाएं।
  • खींचें कहानी बोर्ड
  • कस्टम वर्ग टैब
  • में वर्ग सेट में एक नया UIViewController परीक्षण उद्देश्य के लिए एक UILabel खींच लेता है।
  • रन

कोई लेबल नहीं ... एक नया UIViewController कि MainStoryboard पर लॉगिन दृश्य नियंत्रक के रूप में कार्य करेगा पर

उत्तर

40

पुल। विशेषता निरीक्षक में LoginViewController (या कुछ उचित) के पहचानकर्ता को बदल दें। फिर

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

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

    [self presentModalViewController:vc animated:YES]; 
} 

पहले दृश्य नियंत्रक और लॉगिन स्क्रीन को आपके स्टोरीबोर्ड से लोड किया जाएगा और प्रस्तुत किया जाएगा।

उम्मीद है कि इससे मदद मिलती है।

+0

नहीं, मेरा मतलब यह नहीं था। मेरे पास .m और .h फ़ाइलें हैं और मुझे कोई .xib फ़ाइल नहीं चाहिए लेकिन मुख्य स्टोरीबोर्ड में दृश्य को कॉन्फ़िगर करें। – Justin

+0

मैंने समझाया है कि मुख्य स्टोरीबोर्ड के अंदर लॉगिन स्क्रीन कैसे बनाएं ताकि आपको xib की आवश्यकता न हो। –

+0

लेकिन यह वही नहीं है जो मैं चाहता हूं। उदाहरण के लिए जब आपके पास एक गतिशील तालिका-दृश्य होता है तो आप सेल को दबाए जाने पर एक दृश्य को धक्का देना चाहते हैं। लेकिन आप इसे स्टोरीबोर्ड के साथ कैसे बना सकते हैं। – Justin

6

ऊपर स्कॉट शेरवुड का उत्तर सबसे सही उत्तर है जो मुझे बहुत सारी खोज के बाद मिला है। हालांकि नए एसडीके (6.1) के अनुसार बहुत मामूली परिवर्तन, वर्तमान मॉड्यूल व्यू कंट्रोलर दिखाया गया है।

ऊपर दिए गए उत्तर में बहुत छोटा बदलाव है।

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil]; 
    HomeViewController * hvc = [sb instantiateViewControllerWithIdentifier:@"LoginView"]; 
    [hvc setModalPresentationStyle:UIModalPresentationFullScreen]; 
    [self presentViewController:hvc animated:YES completion:nil]; 
+0

साझा करने के लिए धन्यवाद! – Justin

1

मैं इस क्षेत्र में नया हूं। लेकिन यदि पहला व्यू कंट्रोलर एक नेविगेशन व्यू कंट्रोलर है और इसका रूटव्यू कंट्रोलर एक टेबल व्यू कंट्रोलर है। यदि आप सेल पर क्लिक करते समय LoginViewController जैसे दृश्य नियंत्रक को धक्का देना चाहते हैं, और आप नेविगेशन बार का उपयोग कर तालिका दृश्य पर वापस जाना चाहते हैं। मैं इस तरह से अनुशंसा करता हूं:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    UIViewController *controller = [sb instantiateViewControllerWithIdentifier:@"LoginViewController"]; 
    [self.navigationController pushViewController:controller animated:YES]; 
} 

इस तरह, आप नेविगेशन प्राप्त कर सकते हैं।

वैसे, मुझे नहीं पता कि इस तरह की समस्या आपको क्यों दिखाई देगी। मुझे लगता है कि जब कोडव्यू कंट्रोलर कोड में बनाया गया है, तो इसका दृश्य स्टोरीबोर्ड में दृश्य नहीं है। अगर कोई कारण जानता है, तो कृपया मुझे बताओ! धन्यवाद!

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