2012-03-25 11 views
5

मेरे पास वर्तमान में मोनोचच प्रोजेक्ट है जो स्टोरीबोर्ड और कुछ xib-less (व्यू कंट्रोलर जिनके पास संबंधित xib या स्टोरीबोर्ड में संदर्भ नहीं है) नियंत्रकों का संयोजन होता है (उदाहरण के लिए मोनोटच .Dialog)।xib-less view नियंत्रकों के साथ मोनोटच स्टोरीबोर्ड

सबकुछ स्टोरीबोर्ड व्यू कंट्रोलर से xib-less वाले लोगों को अच्छी तरह से कॉल करने के लिए काम करता है। मेरी समस्या यह है कि जब मुझे xib-less ViewController से वापस स्टोरीबोर्ड व्यू कंट्रोलर में कॉल करने की आवश्यकता होती है।

उदाहरण प्रवाह:

  • स्टोरीबोर्ड
    • TabViewController
      • FirstViewController DialogViewController (स्टोरीबोर्ड में नहीं/xib-कम)
        • AnotherViewController

समस्या है जब AnotherViewController जैसे लोड हो रहा है।

var avc = new AnotherViewController(); 
avc.Person = person 
_dvc.ActivateController(avc); 

मुझे इसे संभव बनाने के लिए एक और दृश्य नियंत्रक पर एक खाली कन्स्ट्रक्टर बनाना पड़ा है। यह दृश्य तब लोड होता है, लेकिन केवल एक खाली UIViewController है (मेरे स्टोरीबोर्ड में से एक नहीं)। मैं इंटरफ़ेस बिल्डर में एक और दृश्य नियंत्रक के साथ MT.Dialog के बीच एक सेग्यू सेट नहीं कर सकता क्योंकि DialViewController प्रोग्रामेटिक रूप से बनाया गया है।

वर्कअराउंड एटीएम स्टोरीबोर्ड में एक और दृश्य कंट्रोलर को पूरी तरह से भूलना है और केवल प्रोग्रामेटिक रूप से इसे भी बनाना है - लेकिन यह एक वास्तविक शर्म की बात है कि मैं प्रोग्रामैटिक के साथ स्टोरीबोर्ड दृश्यों को गठबंधन/मिश्रण नहीं कर सकता।

कोई सुझाव (या मोनोटच सी # स्निपेट) की बहुत सराहना की जाएगी!

+0

सुनिश्चित नहीं है कि मैं सही ढंग से समझ गया हूं: आप अपने 'अन्य दृश्य नियंत्रक' को पॉप करना चाहते हैं - जिसे आपके स्टोरीबोर्ड में आईबी के साथ डिज़ाइन किया गया है - प्रोग्रामेटिक रूप से डिज़ाइन किए गए व्यू कंट्रोलर से, है ना? – psycho

उत्तर

0

आप Storyboard से एक नियंत्रक बना सकते हैं, बस उसमें identifier जोड़ने (स्टोरीबोर्ड में) और फिर कार्य करें:

YourController *c = 
[storyboard instantiateViewControllerWithIdentifier:@"YourIdentifier"]; 

मत भूलना, viewDidLoad में अपने उदाहरणों प्रारंभ करने में क्योंकि initWithNibName

कभी नहीं बुलाया जाएगा
संबंधित मुद्दे