2012-01-24 24 views
22

स्टोरीबोर्ड से पहले मैं एक कक्षा में आउटलेट खींचकर प्रतिनिधियों और डेटा स्रोतों को सेट करने में सक्षम था। स्टोरीबोर्ड के साथ, मैं आउटलेट को किसी अन्य व्यू कंट्रोलर पर नहीं खींच सकता; कोई गंतव्य नहीं है जो इसका जवाब देगा।स्टोरीबोर्ड - प्रतिनिधियों को सेट करना

यदि मैं व्यू कंट्रोलर ऑब्जेक्ट पर क्लिक करता हूं, तो मैं नीचे क्लास मालिक को देख सकता हूं, लेकिन जैसे ही मैं आउटलेट युक्त अन्य व्यू कंट्रोलर का चयन करता हूं, पुराना चयन समाप्त हो जाता है, इसलिए मैं कनेक्ट नहीं कर सकता दो।

क्या यह ऐप्पल कहने का तरीका है कि हमें केवल उन्हें प्रोग्रामिक रूप से कनेक्ट करना चाहिए?

उत्तर

27

सही। अपने prepareForSegue:sender: विधि में प्रतिनिधि या अन्य डेटा सेट करें।

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // Check the segue identifier 
    if ([segue.identifier isEqualToString:@"showDetail"]) 
    { 
     // Get a reference to your custom view controller 
     CustomViewController *customViewController = segue.destinationViewController; 

     // Set your custom view controller's delegate 
     customViewController.delegate = self; 
    } 
} 
+3

कैसे एक UISplitViewController के लिए प्रतिनिधि की स्थापना के बारे में? मैं जिस नमूना कोड को देख रहा हूं उसे विंडो के रूट व्यू कंट्रोलर पर प्राप्त करके इसे संभालता है: 'UISplitViewController * splitViewController = (UISplitViewController *) self.window.rootViewController;' तकनीकी रूप से सही होने पर, और यह काम करता है, यह वास्तव में एक जैसा लगता है अच्छे तरीके से प्रतिनिधियों की तुलना में गंदा दृष्टिकोण और नियंत्रकों को स्टोरीबोर्ड से पहले सेट किया गया था ... –

0

यदि आपका स्टोरीबोर्ड segue गंतव्य देखें नियंत्रक एक UIViewController है तो @Marco जवाब सही है: यहाँ एक उदाहरण है। लेकिन अगर अपने गंतव्य देखें नियंत्रक एक UINavigationViewController तो है आप UINavigationViewController से UIViewController प्राप्त करने के लिए:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // Check the segue identifier 
    if ([segue.identifier isEqualToString:@"chooseCategoryType"]) 
    { 
     // Get a reference of your custom view controller if your segue connection is an UIViewController 
     // CustomViewController *customViewController = segue.destinationViewController; 
     // Get a reference of your custom view controller from navigation view controller if your segue connection is an UINavigationViewController 
     CustomViewController *customViewController = [[[segue destinationViewController] viewControllers] objectAtIndex:0]; 

     // Set your custom view controller's delegate 
     customViewController.delegate = self; 
    } 
} 
संबंधित मुद्दे