2010-04-17 11 views
8

से हटा रहा है तो मेरे पास एक बटन वाला पॉपओवर है। जब वह बटन धक्का दिया जाता है, तो मैं पॉपओवर को दूर जाना चाहता हूं। यह काफी आसान लगता है, लेकिन मैं इसे अपने जीवन के लिए नहीं समझ सकता। कोड मैं पॉपओवर को दिखाने के लिए उपयोग करने के नीचे है:आईपैड UIPopoverController को अपने कंटेंट कंट्रोलर

AddCategoryViewController* content = [[AddCategoryViewController alloc] init]; 
UIPopoverController* aPopover = [[UIPopoverController alloc] 
      initWithContentViewController:content]; 
aPopover.delegate = self; 
[content release]; 

// Store the popover in a custom property for later use. 
self.addCategoryPopover = aPopover; 
[aPopover release]; 
[addCategoryPopover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 

addcategoryviewcontroller के भीतर, मेरे पास है: जहां पॉपओवर से बनाया जा रहा है

-(IBAction)saveAddCategory:(id)sender { 
if (rootViewController == nil) 
    rootViewController = [[RootViewController alloc] init]; 

[rootViewController.addCategoryPopover dismissPopoverAnimated:YES]; 
[rootViewController dismissPopover]; 
} 

Rootviewcontroller है। दुर्भाग्य से, उन तरीकों में से कोई भी इसे खारिज करने के लिए काम नहीं करता है। कोई मदद?

उत्तर

4

आपको इस लाइन पर एक चेतावनी दिखाई देगी।

aPopover.delegate = self; 

और यदि आप अपना कोड निष्पादित करेंगे। ऐप दुर्घटनाग्रस्त हो जाएगा। इसके बजाय आपको इसे this की तरह करने की आवश्यकता है।

+0

ध्यान दें कि सेब एक पॉपओवर को बंद करने के लिए बटन का उपयोग करके हतोत्साहित करता है। – ekinnear

2

मैं

- (void)viewWillDisappear:(BOOL)anAnimated 
{ 
    [self.dPopover dismissPopoverAnimated: NO]; 
    self.dPopover = nil; 
    [super viewWillDisappear: anAnimated]; 
} 

है और नहीं दिख रहा है यही कारण है कि यह आपके मामले में काम नहीं करेंगे।

आपका if थोड़ा परेशान है, इसलिए मेरा अनुमान है कि आप उस विचार से बात नहीं कर रहे हैं जो आपको लगता है कि आप हैं। rootViewController.addCategoryPopover शायद शून्य है, क्योंकि आपने एक नया नियंत्रक बनाया है।

+0

मैंने बनाया है कि "अगर" बयान काफी कुछ भी नहीं के रूप में हताशा में मेरे लिए काम कर रहा था। मैंने एक बिंदु पर बस कोशिश की [rootViewController.addCategoryPopover dismissPopoverAnimated: YES]; उस फ़ंक्शन में कोड के रूप में। हालांकि, यह काम नहीं कर रहा था। – joshholat

+0

आपने मेरे निहित प्रश्न का समाधान नहीं किया - rootViewController.addCategoryPopover का मूल्य क्या है? –

0

मुझे लगता है कि मैंने MKMapView से लोड UIView के साथ एक पॉपओवर को खारिज करने के लिए उपयोग किए गए समाधान के साथ एक समान प्रश्न का उत्तर दिया था। मेरे समाधान का उपयोग मूल रूप से एक पॉपओवर लोड करने वाले किसी भी अन्य दृश्य के समान है।

पर एक नज़र डालें: How to dismissPopoverAnimated on iPad with UIPopoverController in MKMapView (SDK3.2)। मुझे आशा है कि आपकी समस्या हल हो जाएगी।

0

उपयोग NSNotificationCenter करने के लिए DissmissPoperController Fro पिता viewControll

+0

अभिभावक दृश्य नियंत्रक नहीं पिताव्यू नियंत्रक। कोई भी ब्लॉक या प्रतिनिधि या केवीओ या जो चाहें उसका उपयोग कर सकता है। – Vive

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