2011-10-16 6 views
8

मैं एक नए व्यू कंट्रोलर से एक पॉपओवर सेग्यू बना रहा हूं और मूल स्टैक पर तीसरा व्यू कंट्रोलर धक्का देना चाहता हूं।आईओएस 5 स्टोरीबोर्ड में, आप पॉपओवर से मूल दृश्य नियंत्रक के लिए एक नया दृश्य कैसे दबाते हैं?

  1. एक नया Single View Application
  2. करें Use Storyboards
  3. बनाएं MainStoryboard.storyboard फ़ाइल का चयन करें: यह मैं कैसे आवेदन बना रहा हूं है।
  4. केवल दृश्य नियंत्रक का चयन करें, Title और IdentifierinitialView को बदलने के लिए, तो वस्तुओं लाइब्रेरी से दो नए View Controller वस्तुओं कैनवास
  5. बदलें Title और करने के लिए नए दृश्य नियंत्रकों की Identifier पर चयन Editor->Embed In->Navigation Controller
  6. खींचें: popoverView और newView
  7. ऑब्जेक्ट लाइब्रेरी से initialView और popoverView पर Round Rect Button ऑब्जेक्ट जोड़ें।
  8. ऑब्जेक्ट लाइब्रेरी से 'newView' पर Label ऑब्जेक्ट जोड़ें।
  9. नियंत्रण initialView में बटन क्लिक करें और popoverView पर खींचें।
  10. Storyboard Segues मेनू से दिखाई देने वाले Popover विकल्प का चयन करें।
  11. नियंत्रण popoverView में बटन क्लिक करें और newView पर खींचें।
  12. Storyboard Segues मेनू से Push विकल्प का चयन करें।
  13. & रन बनाएं।

पहला बटन क्लिक करें, और पॉपओवर प्रकट होता है, लेकिन जब आप पॉपओवर भीतर बटन पर क्लिक करें, कुछ नहीं होता है (यह नया दृश्य धक्का चाहिए, लेकिन नहीं करता है।)

क्या मैं चाहते ऐसा करने के लिए Navigation Controller स्टैक पर धक्का देना है, लेकिन मुझे यकीन नहीं है कि इसके लिए स्टोरीबोर्ड कैसे सेट करें।

कोई विचार?

उत्तर

1

लगता है जैसे इसे काम करना चाहिए, लेकिन यदि यह निम्न कोशिश नहीं करता है: 1. उस सिग पर क्लिक करें जो काम नहीं करता है और इसे पहचानकर्ता देता है। मान लें कि यह PopoverToNewSegue है।

  1. पॉपओवर व्यू कंट्रोलर के लिए अपनी कार्यान्वयन फ़ाइल में, बटन क्लिक होने पर एक क्रिया जोड़ें।

  2. वह फ़ंक्शन शून्य वापस लौटाया जाना चाहिए और निम्न पंक्ति जोड़ें: [स्वयं प्रदर्शन SegueWithIdentifier: @ "PopoverToNewSegue" प्रेषक: स्वयं];

यह आपके सीगू को चलाना चाहिए। मैंने देखा है कि segues हमेशा काम नहीं करते हैं जैसे आप उन्हें उम्मीद करते हैं, लेकिन यह मेरे बिना असफल काम करता है।

+1

मुझे एक ही समस्या है। मैंने performSegueWithIdentifier को कॉल करने की कोशिश की जैसे आपने कहा और यह कुछ भी नहीं किया :( – jrwren

6

आप UINavigationController पदानुक्रम की उम्मीद कर रहे हैं ताकि वे खुद को प्रस्तुत किए गए पॉपओवर में विस्तारित कर सकें। यह नहीं होगा मोडल व्यू कंट्रोलर पेश करने के लिए भी यही है। यदि आप popoverView में self.navigationController लॉग करना चाहते थे, तो आप देखेंगे कि यह शून्य है।

अपने UINavigationController में popoverView एम्बेड करें। याद रखें कि यदि आप prepareForSegue:sender: ओवरराइड कर रहे हैं और पॉपओवर को कॉन्फ़िगर करने का प्रयास कर रहे हैं, तो आपको destinationViewController से प्राप्त करने की आवश्यकता होगी क्योंकि गंतव्य अब UINavigationController का उदाहरण है।

+1

आपकी व्याख्या ने मुझे मेरी समस्या का समाधान करने में मदद की है (http://stackoverflow.com/questions/13591559/how-to-pass-parameters-to-a-popover- व्यू-कंट्रोलर-इन-नेविगेशन-कंट्रोल)। धन्यवाद – HpTerm

+0

क्या आप इसका एक छोटा सा उदाहरण जोड़ सकते हैं? – MiQUEL

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

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