का उपयोग करके पॉपओवर को खारिज कर रहा है मैंने इस पर सामान के टन पढ़ा है और अधिकांश गैर-स्टोरीबोर्ड दृष्टिकोण के संबंध में प्रतीत होता है, मैंने सोचा कि मैंने एक साथ बिट्स पाई हैं और इसे समझ लिया है। हालांकि, निम्नलिखित कोड का परिणाम मेरे पॉपओवर को खारिज नहीं किया जा रहा है। पॉपओवर निष्पादित बटन में खारिजपोप बटन बटन दबाया जाता है लेकिन प्रतिनिधि में बर्खास्तपॉप विधि में ब्रेकपॉइंट कभी हिट नहीं होता है। गलतियों को पहचानने के लिए कोड पर नजर डालने वाले किसी की भी बहुत सराहना करेंगे।स्टोरीबोर्ड: प्रतिनिधि/प्रोटोकॉल विधि
धन्यवाद
निम्नलिखित में, NewGameViewController एक UIButton शामिल हैं। इस परिणाम को पॉपओवर सेगु में और पॉपव्यू कंट्रोलर UIView युक्त पॉपओवर के बाद के प्रदर्शन में दबाएं।
NewGameViewController.h
#import "PopViewController.h"
@interface NewGameViewController: UIViewController <DismissPopoverDelegate>
{
UIPopoverController *popover;
}
NewGameViewController.m
@implementation NewGameViewController
-(void)prepareForSegue:(UIStoryboardPopoverSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"popoverSegue"])
{
popover = [(UIStoryboardPopoverSegue *)segue popoverController];
// getting warning: Assigning to 'id<UIPopoverControllerDelegate>' from incompatible type 'NewGameViewController *const__strong'
//popover.delegate = self;
}
}
-(void)dismissPopover
{
[popover dismissPopoverAnimated:YES];
}
PopViewController.h
@protocol DismissPopoverDelegate <NSObject>
-(void) dismissPopover;
@end
@interface PopViewController: UIViewController
{
__unsafe_unretained id<DismissPopoverDelegate> delegate;
}
@property (nonatomic, assign) id<DismissPopoverDelegate> delegate;
-(IBAction)dismissPopoverButtonPressed:(id)sender;
@end
PopViewController.m
#import "NewGameViewController.h"
@implementation PopViewController
@synthesize delegate;
-(IBAction)dismissPopoverButtonPressed:(id)sender
{
[self.delegate dismissPopover];
}
धन्यवाद:
आप अभी भी चारों ओर पॉपओवर नियंत्रक के लिए एक संदर्भ रखने के लिए, को बर्खास्त करने, इसलिए अपने मौजूदा कोड रखने के लिए, लेकिन निम्न परिवर्तन करने की जरूरत है। मुझे स्वीकार करना होगा, मैंने इस कोड को तर्क को पूरी तरह से समझने के लिए लागू नहीं किया है, लेकिन मुझे प्रोटोकॉल और प्रतिनिधि को स्पष्ट रूप से घोषित करने के बारे में कई टिप्पणियां पढ़ने को याद है ताकि पॉपओवर घटनाओं को वीसी में संभाला जा सके जो इसे उत्पन्न करता है। निश्चित रूप से, स्टॉपबोर्ड के माध्यम से कोड बनाम में पॉपओवर स्पष्ट रूप से बनाया जा रहा है या नहीं, इस दृष्टिकोण के आधार पर दृष्टिकोण अलग-अलग दिखाई देते हैं। इसके साथ ही, मैं अभी भी उपरोक्त पर कोई बुद्धिमान नहीं हूँ। – Tony
मैंने सुझावों को रोकने के लिए 'प्रतिनिधि' का नाम बदलने का भी प्रयास किया जैसा कि आप सुझाव देते हैं लेकिन इससे कोई फर्क नहीं पड़ता। जब आप कहते हैं कि मेरा पॉपओवर इवर अधिक विशेष रूप से टाइप किया जाना चाहिए - आपका क्या मतलब है? – Tony
यदि SHARRP यह देख रहा है, तो क्या आप एक उदाहरण प्रोजेक्ट बनाने के लिए बहुत दयालु होंगे (जैसा कि आपने http://stackoverflow.com/questions/5922254/how-to-dismiss-uipopover-from-a- बटन-इन-द-पॉपओवर) जो वही काम करता है लेकिन स्टोरीबोर्ड का उपयोग करता है (यानी, UIViewController के लिए एक सेग्यू को नियंत्रित करना, जिसका दृश्य पॉपओवर के अंदर दिखाई देगा)। उपरोक्त मेरा कोड आपके उदाहरण को लागू करने का प्रयास था, लेकिन कुछ सही नहीं है और स्टोरीबोर्ड/सेगु का उपयोग मुख्य अंतर प्रतीत होता है। – Tony