2010-09-21 25 views
7

मैं एक आईपैड ऐप के साथ एक समस्या में भाग रहा हूं जहां मैं UISVitView के भीतर दोनों विचारों में UINavigationControllers रखना चाहता हूं। मैंने यहां अन्य समान प्रश्नों को देखा है, लेकिन ऑनलाइन ट्यूटोरियल के अधिकांश लिंक जो समस्या को पूरी तरह से हल नहीं करते हैं। मेरी समस्या को दोबारा बनाने के लिए यहां 2 मिनट की पैदल यात्रा है:क्या मैं UISavitViewController के विस्तृत दृश्य के रूप में एक UINavigationController का उपयोग कर सकता हूं?

  1. स्प्लिट व्यू-आधारित एप्लिकेशन टेम्पलेट से शुरू होने पर एक्सकोड में एक नई परियोजना बनाएं।
  2. DetailViewController के willHideViewController विधि के भीतर पहली पंक्ति के रूप में निम्नलिखित NSLog बयान जोड़ें:

    NSLog (@ "उपकरण पट्टी:% @", उपकरण पट्टी);

यदि आप अब एप्लिकेशन चलाते हैं, तो लॉग दिखाएगा कि DetailViewController की टूलबार जिंदा और अच्छी तरह से है। अब ...

  1. ओपन MainWindow.xib खोलें और SplitViewController का विस्तार करें।
  2. DetailViewController के शीर्ष पर लाइब्रेरी से एक नेविगेशन नियंत्रक खींचें।
  3. नए नेविगेशन नियंत्रक का विस्तार करें और UIViewController की कक्षा को एक DetailViewController में बदलें।
  4. SplitViewController से DetailViewController पर Ctrl-drag और इसे प्रतिनिधि के रूप में असाइन करें।
  5. MainWindow.xib सहेजें और ऐप को फिर से चलाएं।

इस बिंदु पर, विस्तार दृश्य में नेविगेशन बार और एक खाली टूलबार है। यदि आप लॉग देखते हैं, तो आपको यह पता होना चाहिए कि टूलबार शून्य है। ऐसा क्यों है? क्या मुझे इंटरफेस बिल्डर में कुछ प्रकार का कनेक्शन याद आ रहा है? क्या नेविगेशन बार किसी कारण से समस्या है?

http://www.cimgf.com/2010/05/24/fixing-the-uisplitviewcontroller-template/ पर ट्यूटोरियल के विपरीत, मैं नेविगेशन बार और टूलबार दोनों को रखना चाहता हूं (अधिमानतः पोर्ट्रेट में शीर्ष पर टूलबार के साथ और परिदृश्य में दिखाई नहीं दे रहा है), ताकि मेरे पास अभी भी एक कार्यात्मक "बैक" हो "बटन जब आईपैड पोर्ट्रेट अभिविन्यास में है।

क्या किसी को भी इस समस्या को हल करने के लिए कोई सुझाव है? इस तरह के सेट-अप के साथ एक उदाहरण परियोजना आदर्श होगी।

+0

@B Sweigard:

यहाँ कैसे नेविगेशन पट्टी छिपाने के लिए और उपकरण पट्टी को दिखाने के लिए पर एक उदाहरण है हाय, आप कभी भी अपना समस्या हल है? मैं वही करने की कोशिश कर रहा हूं जैसा आपने कोशिश की थी। – matm

उत्तर

0

मुझे अंतर्निहित UISplitViewController को अन्य अंतर्निहित दृश्य नियंत्रक उप-वर्गों के साथ गठबंधन करने का प्रयास करते समय बुरी तरह व्यवहार करने के लिए मिला है। मैट जेममेल का MGSplitViewController बहुत अधिक लचीला है और अजीब ग्लिच के बावजूद मेरे लिए बहुत अच्छा काम किया है (हालांकि उन स्रोत कोड के रूप में कम से कम ठीक करने योग्य हैं)।

1

आप निश्चित रूप से एक विभाजित दृश्य नियंत्रक के विस्तार दृश्य पर एक नेविगेशन नियंत्रक का उपयोग कर सकते हैं। वास्तव में, आईपैड सेटिंग्स ऐप इस दृष्टिकोण का उपयोग करता है। शायद इस सेटअप को पाने का सबसे अच्छा तरीका एक्सकोड 4.x में एक नई परियोजना बनाना है और "मास्टर-विस्तार अनुप्रयोग" टेम्पलेट का चयन करना है। यह 2 नेविगेशन नियंत्रकों के साथ एक स्प्लिट व्यू कंट्रोलर उत्पन्न करेगा, एक बाएं व्यू के लिए और एक सही दृश्य के लिए।

चीजों को सरल रखने के लिए, आपके टूलबार प्रश्न में, मैं नीचे एक टूलबार डालूंगा। आप अभी भी शीर्ष नेविगेशन बार पर बार बटन आइटम डाल सकते हैं, हालांकि आप उन्हें केवल बाएं, मध्य या दाएं में डाल सकते हैं। यदि आपको शीर्ष पट्टी पर बहुत सी चीजों की आवश्यकता है, तो एक तरीका है विस्तार से देखने के लिए टूलबार जोड़ना और दृश्य दृश्य वर्ग के दृश्य WillAppear ईवेंट में नेविगेशन बार को छिपाना।

- (void) viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    self.navigationController.toolbarHidden = NO; 
    self.navigationController.navigationBarHidden = YES; 
} 
संबंधित मुद्दे

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