2012-06-21 10 views
12

मैं एक बहुत ही अजीब मुद्दा यहाँ के पीछे जनक दृश्य छिपा देता है। मैं एक व्यूअर कंट्रोलर के शीर्ष पर अपने एमएफमेल कॉम्पोज़र व्यू कंट्रोलर को प्रदर्शित करने के लिए एक वर्तमान मोडल व्यू कंट्रोलर का उपयोग कर रहा हूं जिसे नेविगेशन बार में रखा गया है।dismissModalViewController स्थिति पट्टी

[self presentModalViewController:emailviewController animated:YES];

को छिपाने के लिए, मैं का उपयोग करें ...

-(void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
{ 

    [self dismissModalViewControllerAnimated:YES]; 
} 

सब कुछ ठीक काम करता है, लेकिन जब मैं अपने MailComposer खारिज मूल दृश्य नियंत्रक स्थिति पट्टी के पीछे छुपाता है।

मैं 10 की भरपाई setFrame पद्धति का उपयोग करके दृश्य को संशोधित करने की कोशिश की है, लेकिन यह काम किया din't। (इस थक है पहले और बाद में मॉडल दृश्य नियंत्रक प्रस्तुत किया और खारिज किया जाता है)

मैं अस्थायी रूप से स्थिति पट्टी छुपा कर की कोशिश की है, लेकिन काम नहीं किया।

मैं self.navigationcontroller presentmodalviewcontrolle की कोशिश की है, लेकिन वह भी काम नहीं किया था ...

कोई भी विचार या सुझाव अत्यधिक सराहना की जाएगी

After dismissmodalviewcontroller called

संपादित: अधिकांश लोग मुझे दे ऑफसेट को मैन्युअल रूप से संशोधित करने के लिए एक सुझाव। वैसे यह काम नहीं करता है। क्योंकि अगर मैं ऐसा है कि मेरे viewDidLoad/मूल ViewController विधि के viewWillapper में तो यह जबकि बाद मैं मोडल दृश्य नियंत्रक यह सामान्य हो जाता है लोड वर्तमान मॉडल दृश्य नियंत्रक से पहले मेरे विचार में बदलाव।

  • (शून्य) viewDidAppear: (bool) एनिमेटेड { CGRect फ्रेम = self.navigationController.view.frame; frame.origin.y = 20; self.navigationController.view.frame = फ्रेम; }

Changing offset results in this

+0

क्या आपका मूल दृश्य नियंत्रण है आर स्टेटस बार छुपा हुआ है या नहीं? – Ladislav

+0

नहीं .. मैं स्थिति पट्टी अभी तक छुआ है –

+0

तो मोडल दृश्य नियंत्रक के साथ-साथ मूल दृश्य नियंत्रक में कोई स्थिति पट्टी परिवर्तन? – Ladislav

उत्तर

3

ViewDidAppear में इस डाल का प्रयास करें:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault]; 

सबसे खराब मामला है, अगर यह हमेशा क्या हो रहा है के बाद ही मॉडल दृश्य नियंत्रक को खारिज कर दिया है, में afterFirstLaunch के लिए एक बूलियन घोषित .h और इसे देखने में डालें DidAppear:

if(afterFirstLaunch){ 
     CGRect frame = self.navigationController.view.frame; 
     frame.origin.y = 20; 
     self.navigationController.view.frame = frame; 
} 
else { 
     afterFirstLaunch = true; 
} 
+0

यदि यह काम नहीं करता है, तो कोड पोस्ट करने से मदद मिल सकती है। इंटरफेस बिल्डर का उपयोग कर दोनों विचार क्या हैं? आप मोडल व्यू कंट्रोलर कैसे पेश कर रहे हैं? – WolfLink

+0

एक ही समस्या है, लेकिन यह वास्तव में मुझे काम नहीं किया –

+0

मुझे ऐसा लगता है दृश्य करने के बाद दृश्य फ्रेम स्थानांतरण है कि सभी के लिए तैयार दिखाई दिया बहुत बुरा लग रहा है। दिखाई देने से पहले दृश्य को ठीक से तैनात किया जाना चाहिए। – Darren

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