2013-03-14 5 views
7

तो मेरे सार्वभौमिक ऐप में मेरे पास एक ऐसा अनुभाग है जहां कोई व्यक्ति हमारे सिस्टम से नोट्स की एक मौजूदा सूची देख सकता है (एक साधारण वेब सेवा के माध्यम से पुनर्प्राप्त) और फिर एक नया नोट भी बना सकता है वो चाहते हैं। तो आईफोन के लिए यह बहुत आसान लेआउट है, एक टेबल व्यू कंट्रोलर नेविगेशनबार पर "जोड़ें" बटन के साथ सूची प्रदर्शित करने के लिए जो नया आइटम जोड़ने के लिए मोडलव्यू प्रस्तुत करता है। हालांकि, आईपैड पर, एक ही लेआउट में बहुत सारी बर्बाद जगह है इसलिए मैंने पॉपओवर में सूची दिखाने के लिए पॉपओवर विधि के साथ जाने का विकल्प चुना और फिर उन्हें वहां से जोड़ने दिया। मेरी समस्या यह है कि जब उपयोगकर्ता पॉपओवर व्यू के भीतर ऐड बटन पर क्लिक करता है, तो मोडल व्यू पॉपओवर व्यू के अंदर आने के बजाय पूर्ण स्क्रीन आता है। यहाँ कोड मैं अब तक है:पॉपओवर व्यू के अंदर से वर्तमान मॉडल व्यू कंट्रोलर

-(void) AddButtonPressed:(id)sender { 

NewNoteVC *newNote = [[[NewNoteVC alloc] initWithNibName:@"NewNoteVC" bundle:nil] autorelease]; 
newNote.defaultClientID = defaultClientID; 
UINavigationController *navCon = [[[UINavigationController alloc] initWithRootViewController:newNote] autorelease]; 
if ([isPopOver isEqualToString:@"YES"]) { 
    [navCon setModalInPopover:YES]; 
    [self.navigationController setModalInPopover:YES]; 
    [self.navigationController presentModalViewController:navCon animated:YES]; 
} 
else { 
    [self.navigationController presentModalViewController:navCon animated:YES]; 
} 

}

"isPopOver" स्ट्रिंग सिर्फ एक प्लेसहोल्डर पिछली स्क्रीन है कि इस tableview कहा जाता है (मैं जानता हूँ कि मैं बेहतर करने के लिए एक बूलियन को यह स्विच कर सकते हैं से भेजे गए है प्रदर्शन मैं इसे अभी कोशिश करने के लिए इसे एक साथ असली जल्दी डाल दिया)। मुझे पता है कि मैं कहीं गड़बड़ कर रहा हूं, मुझे नहीं पता कि मुझे यह सही तरीके से काम करने के लिए किस सेटिंग की आवश्यकता है।

+0

के संभावित डुप्लिकेट [UIPopoverController रीति से प्रस्तुत iOS 5 में काम नहीं करता है] (http://stackoverflow.com/questions/7806979/uipopovercontroller-presented-modally-doesnt-work-in-ios-5) – Till

उत्तर

22

आप को परिभाषित करने के दृश्य नियंत्रक के modalPresentationStyle "वर्तमान संदर्भ" होने की जरूरत है।

navCon.modalPresentationStyle = UIModalPresentationCurrentContext; 

इसका परिणाम पॉपओवर के रूट नियंत्रक जैसे पॉपओवर को भरने के लिए मोडल व्यू कंट्रोलर होगा।

+2

यह वह जगह है जिस सेटिंग की मुझे आवश्यकता है, धन्यवाद। –

2

presentViewController:animated:completion: बजाय presentModalViewController:animated: का उपयोग करने का प्रयास और सेट self.navigationController.definesPresentationContext = YES

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