2012-07-03 19 views
9

मैं स्टोरीबोर्ड का उपयोग करके एक आईफोन ऐप बना रहा हूं और मुझे टैब बार नियंत्रक के साथ समस्या है। टैब बार नियंत्रक (व्यू 1) से जुड़े दृश्यों में से एक पर, एक बटन है जो दूसरे दृश्य (व्यू 2) की ओर जाता है। व्यू 2 पर, एक बटन है जो व्यू 1 पर वापस जाता है। बहुत सीधे आगे। लेकिन जब मैं view1 से view2 पर जाता हूं, तो टैब बार गायब हो जाता है, और इससे भी बदतर, जब मैं व्यू 1 पर वापस जाता हूं, तब टैब बार अभी भी चला जाता है ... मैं इसे कैसे ठीक कर सकता हूं? (मैंने अभी तक ऐप में कोई भी कोड डालना नहीं है, केवल स्टोरीबोर्ड और सेब ऐपडिलेगेट क्लास प्रदान करता है (और मुझे लगता है कि एक मुख्य फ़ाइल भी है, लेकिन मैं इसे छूने का इरादा नहीं रख रहा हूं)।टैब बार नियंत्रक किसी अन्य दृश्य (आईओएस एसडीके, स्टोरीबोर्ड का उपयोग करते समय) गायब हो रहा है

कोई भी जवाब अत्यधिक है की सराहना की!

+0

आप दूसरे दृश्य कैसे प्रस्तुत कर रहे हैं? – Dustin

+0

जब उपयोगकर्ता बटन क्लिक करता है तो यह उन्हें केवल View2 – byteSlayer

+0

पर स्थानांतरित करता है क्या आपने इसके लिए कोई सेटअप किया है? या आपने टैब बार फ़ंक्शंस का उपयोग किया था। आपकी समस्या से ऐसा लगता है कि आप एक segue – Dustin

उत्तर

30

आप एक दृश्य एक टैब बार दृष्टिकोण यह है कि से एक मॉडल segue करते हैं, यह दूसरी बात मोडल दृश्य आपको प्रस्तुत कर रहे हैं के लिए टैब बार से छुटकारा मिल जाएगा।

, जब आप segue आप बना रहे हैं व्यू कंट्रोलर का एक नया उदाहरण। इसलिए मुझे लगता है कि आप व्यू 1 से व्यू 2 और टैब बार को खोने से अनुमान लगा रहे हैं, फिर आप वापस देखने के लिए segueing कर रहे हैं। इस बिंदु पर आपने view1, view2 और view1 की दूसरी प्रति बनाई है नहीं है ई एक टैब बार।

मैं दो चीजों में से एक का सुझाव दूंगा।

1.) यदि आप दृश्य 1 से व्यू 2 तक सीगू करते हैं तो टैब को नीचे रखना चाहते हैं, फिर स्क्रीन के शीर्ष पर संपादक/एम्बेड करें/नेविगेशन कंट्रोलर के दृश्य 1 पर क्लिक करें। यह आपके दृश्य 1 को नेविगेशन नियंत्रक में एम्बेड करेगा। फिर यदि आप मॉड्यूल से पुश तक अपना सेग्यू बदलते हैं तो यह आपके टैब बार को नीचे रखेगा। शीर्ष पर नेविगेशन बार भी एक नया सीगू बनाने के बजाय सही तरीके से (दृश्य को पॉप करके) देखने के लिए दृश्य 2 से वापस जाना आसान बनाता है। यदि आपको नेविगेशन बार पसंद नहीं है, तो आप इंस्पेक्टर में "टॉप बार" प्रॉपर्टी को "कोई नहीं" में बदल सकते हैं। फिर आपको देखने के लिए वापस देखने के लिए दृश्य 2 में कुछ और तरीका बनाने की आवश्यकता होगी। (नियंत्रक को पॉप करके, SEGUEING द्वारा नहीं)

2) यदि आप नेविगेशन नियंत्रक सेट अप नहीं करना चाहते हैं तो आपको व्यू 2 कंट्रोलर के नीचे टैब बार सामान रखने में थोड़ा कठिन समय लगेगा। असल में, मुझे यकीन नहीं है कि आप इसे एक मोडल सेगू के साथ भी कर सकते हैं, आपको शायद कुछ प्रकार के कस्टम सेगू लिखना होगा। किसी भी तरह से, यदि आप 1 को वापस देखने के लिए संक्रमण करना चाहते हैं और सही नियंत्रक (टैब के बिना एक नया संस्करण नहीं) प्राप्त करने के लिए चाहते हैं तो आपको सीगू के लिए जो भी बटन उपयोग कर रहे हैं, उसे एक क्रिया संलग्न करने की आवश्यकता है और निम्न कोड का उपयोग करें (मैंने भी संलग्न किया है नेविगेशन नियंत्रक धक्का segues के लिए कोड, मामले में आप एक नेविगेशन नियंत्रक बना सकते हैं और नेविगेशन पट्टी से छुटकारा पाने के)

मोडल Segue के लिए:।

[self dismissModalViewControllerAnimated:YES]; 

पुश segue के लिए:

[self.navigationController popViewControllerAnimated:YES]; 

नेविगेशन का उपयोग करना आपकी सबसे अच्छी शर्त है नियंत्रक विधि, क्योंकि आपको अपने टैब रखने का आश्वासन दिया जाता है। फिर आप वापस करने के लिए नेविगेशन बार का उपयोग कर सकते हैं (आसान तरीका, कोई कोड आवश्यक नहीं है) या आप इससे छुटकारा पा सकते हैं और ऊपर दिए गए बटन और कोड का उपयोग कर सकते हैं।

शुभकामनाएं!

+0

Thnks। यह बहुत ही उपयोगी है! – byteSlayer

+0

मैंने समाधान 1 का उपयोग किया। लेकिन जब मैंने किया (चयनित दृश्य # 1), मेरे पास दो नेविगेशन नियंत्रक थे क्योंकि मेरे पास पहले से ही मेरी स्टोरीबोर्ड में एक था। मैंने पैरेंट एनए नियंत्रक को हटा दिया जो मेरे टैब बार नियंत्रक के पीछे था। इसके बजाय मैंने इस तरह एक एनवी नियंत्रक का उपयोग किया। टैब बार नियंत्रक -> एनएवी बार नियंत्रक -> टेबल नियंत्रक -> विस्तार तालिका नियंत्रक। इसलिए प्रत्येक टैब के लिए मेरे पास यह स्वयं का स्वतंत्र एनवी नियंत्रक है। एक एनवी नियंत्रक का उपयोग करने का एक साझा तरीका हो सकता है लेकिन ऐसा लगता है कि यह काफी अच्छा काम कर रहा है। –

+0

हां, यह ठीक है कि मैंने इसे कुछ परियोजनाओं पर कैसे किया है। यह वही है जो मैं ऊपर चित्रित करने की कोशिश कर रहा था। –

2

मुझे एक ही समस्या थी, मुझे पता है कि यह एक पुराना सवाल है लेकिन [self dismissModalViewControllerAnimated:YES]; आईओएस 6 में बहिष्कृत है।

मैं क्या प्रयोग किया जाता है:

[self dismissViewControllerAnimated:YES completion:nil];