2010-05-15 11 views
6

स्थिति:
मेरे पास "नेविगेशन-आधारित-एप्लिकेशन" टेम्पलेट के आधार पर एक एक्सकोड प्रोजेक्ट है। तो इसका मतलब है कि मेरे पास एक सिंगल UINavigationController है जो UIViewController का प्रबंधन करता है।मैं नेविगेशन नियंत्रकों के बीच कैसे स्विच करूं?

क्या मैं करना चाहता हूँ:
मुझे क्या करना चाहते हैं अपने प्रोजेक्ट के लिए एक और UINavigationController जोड़ने है - और उन दोनों के बीच आगे और पीछे स्विच करने में सक्षम हो। (मैं कुछ अलग असंबंधित सामग्री के लिए जगह बनाने के लिए इतना है कि यह एक वापस बटन रूट दृश्य नियंत्रक करने के लिए वापस ओर इशारा करते हुए नहीं है ऐसा करना चाहते हैं।)

प्रश्न:
कैसे मैं एक और जोड़ सकता हूँ UINavigationController मेरी परियोजना के लिए और दो UINavigationControllers के बीच स्विच?

+0

क्यों न केवल बैक बटन छुपाएं? – drawnonward

+0

आप दोनों क्षेत्रों के बीच कैसे बदल रहे हैं? एक UITabBarController? – Rudiger

उत्तर

9

सबसे आम, और प्राकृतिक आईफोन ओएस, ऐसा करने का तरीका UITabBarController को आपके एप्लिकेशन में जोड़ना है। एक्सकोड टेम्पलेट टैब बार एप्लिकेशन आपको इसका उपयोग करने के तरीके पर सही दिशा में मार्गदर्शन करेगा।

लेकिन ...

आप अपने आवेदन में एक टैब बार है, और विभिन्न UINavigationController उदाहरणों (या उस बात के लिए किसी भी UIViewController) के बीच स्विच करना चाहते हैं करना पसंद नहीं है, तो आप कुछ इस तरह कर सकते हैं ।

सबसे पहले आपको उचित स्थान पर अपना UINavigationController उदाहरण बनाने की आवश्यकता है (उदाहरण के लिए एक नया दृश्य नियंत्रक, या आप में आवेदन प्रतिनिधि, यदि आप आसान तरीका लेना चाहते हैं)। इसके बाद आप केवल नेविगेशन कंट्रोलर के दृश्य को स्वैप करके नियंत्रकों के बीच स्विच कर सकते हैं जो दिखाना चाहिए।

- (void)showFirstNavigationController { 
    [secondNavigationController.view removeFromSuperview]; 
    [self.window addSubview:firstNavigationController.view]; 
} 

यह केवल दूसरा नेविगेशन नियंत्रक के बजाय पहले प्रदर्शित करेगा: आवेदन प्रतिनिधि में

उदाहरण के लिए, "firstNavigationController" और "secondNavigationController" UINavigationController उदाहरण चर हैं। ध्यान दें कि यह उदाहरण बहुत आसान है। मैंने इस बात पर विचार नहीं किया कि आपको viewWillAppear:, viewDidAppear: और अन्य तरीकों को सही तरीके से संभालना चाहिए।

+0

धन्यवाद - और अतिरिक्त क्रेडिट के लिए: मैं संक्रमण को चिकनी (या एनिमेटेड) कैसे बना सकता हूं? – RexOnRoids

+0

आप कुछ बुनियादी 'UIView' एनिमेशन के साथ इतना आसान कर सकते हैं। मेरी विधि में पहली पंक्ति से पहले, जोड़ें: '[UIView startAnimations: @ "myFlip" संदर्भ: NULL]; 'और' [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView: self.view कैश: हाँ];' और नीचे में: '[ UIView प्रतिबद्धएनीमेशन]; – alleus

+0

तेज़ी से यह कैसे करें? – DeyaEldeen

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