11

में UINavigationController नेविगेशन ढेर समस्याओं मैं iPad के साथ काम करने के लिए एक iPhone आवेदन है कि मैं वर्तमान में एक universal binary में कनवर्ट कर रहा हूँ है। मैंने लेआउट के संदर्भ में जो कुछ भी आवश्यक है उसे सफलतापूर्वक कार्यान्वित किया है ताकि पूर्ण परिदृश्य कार्यक्षमता अब मेरे ऐप में समर्थित हो (पहले मैंने मुख्य रूप से सामग्री प्रदर्शित करने के लिए पोर्ट्रेट मोड का उपयोग किया था)।लैंडस्केप मोड

लेकिन, मैं एक अजीब समस्या है, और यह केवल लैंडस्केप मोड में होती है: जब मैं ढेर पर एक दृश्य नियंत्रक धक्का, यह पिछले दृश्य नियंत्रक पर लौटने के लिए वापस बटन पर दो नल ले जाता है! पहला टैप एक रिक्त दृश्य दिखाता है, लेकिन बाएं तरफ वापस नेविगेशन बटन पर उसी नाम के साथ, दूसरी टैप नियंत्रक को पिछले दृश्य में वापस ले जाती है जैसे इसे करना चाहिए।

मेरे पास परीक्षण करने के लिए आईपैड नहीं है, इसलिए मैं सिम्युलेटर पर भरोसा कर रहा हूं। समस्या आईफोन पर दिखाई नहीं देती है और यदि आप पोर्ट्रेट मोड पर वापस घुमाते हैं तो दिखाई नहीं देते हैं।

मेरे ऐप अपने कुलपति के लिए लोड नेविगेशन नियंत्रकों के साथ एक TabBarController के होते हैं:

//application delegate 
- (void)applicationDidFinishLaunching:(UIApplication *)application 
//.... 
WebHelpViewController *vc8 = [[WebHelpViewController alloc] init]; 
UINavigationController *nv8 = [[UINavigationController alloc] initWithRootViewController:vc8]; 

[self.tabBarController setViewControllers:[NSArray arrayWithObjects:nv1,nv2,nv3,nv4,nv5,nv6,nv7,nv8,nil]]; 

परिदृश्य क्षमता को लागू करने के लिए, UITabBarController जरूरत पड़ने पर autorotate करने के लिए ओवरराइड है:

//CustomTabBarController.m 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return [[(UINavigationController *)self.selectedViewController topViewController] shouldAutorotateToInterfaceOrientation:interfaceOrientation]; 
} 

... काम करता है ठीक। मैं इस विधि

SomeViewController *vc = [[SomeViewController alloc] init]; 
[self.navigationController pushViewController:vc animated:YES]; 
[vc release]; 

यह केवल एक सिमुलेशन त्रुटि है का उपयोग कर नए विचारों के भीतर पहुंच? मैं इस समस्या को कैसे हल करूं?

(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 

चेक यह पहली:

उत्तर

10

यह एक और ViewController की तरह लगता है का जवाब है।

+1

धन्यवाद दोस्त, यह समस्या थी। मुझे यह सुनिश्चित करने की ज़रूरत है कि मेरे सभी व्यू कंट्रोलर लागू किए गए - (BOOL) कोऑटोरोटेट टूइंटरफेसऑरिएंटेशन: (UIInterfaceOrientation) इंटरफ़ेस ऑरियंटेशन; –

+0

यदि आप XCode में नए 'UIViewControllers' बनाने के लिए' CMD + N' का उपयोग कर रहे हैं, तो यह विधि टेम्पलेट के हिस्से के रूप में शामिल डिफ़ॉल्ट में से एक है। – Sneakyness

+0

grrr मुझे बिल्कुल वही समस्या का सामना करना पड़ रहा है: मैं एक नेविगेशन नियंत्रक को मोडल के रूप में प्रस्तुत कर रहा हूं और फिर मैं कुछ व्यू कंट्रोलर को दबाता हूं। NavController और सभी धक्का नियंत्रक YES को वापस करने के लिए YutorotateToInterfaceOrientation को वापस कर सकते हैं लेकिन परिदृश्य में, मुझे नेविगेशन बार को ठीक से अपडेट करने के लिए दो बार "वापस" दबाएं:/कोई विचार? – yonel

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