رفض iPad uipopovercontroller من داخل وحدة تحكم المحتوى الخاصة به

StackOverflow https://stackoverflow.com/questions/2660162

سؤال

لذلك لدي بوبوفر مع زر فيه. عندما يتم دفع هذا الزر ، أريد أن يذهب البوبوفر. يبدو الأمر سهلاً بما فيه الكفاية ، لكن لا يمكنني معرفة ذلك لحياة لي. الكود الذي أستخدمه لإظهار البوبوفر أدناه:

    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 هو المكان الذي يتم فيه إنشاء Popover. لسوء الحظ ، لا تعمل أي من هذه الأساليب على رفضها. أي مساعدة؟

هل كانت مفيدة؟

المحلول

ستشاهد تحذيرًا في هذا الخط.

 aPopover.delegate = self;

وإذا قمت بتنفيذ الكود الخاص بك. سوف يعطل التطبيق. بدلاً من ذلك تحتاج إلى القيام بذلك مثل هذه.

نصائح أخرى

أملك

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

ولا ترى لماذا لن ينجح هذا في قضيتك.

لك if أمر مثير للقلق بعض الشيء ، لذلك أعتقد أنك لا تتحدث إلى الرأي الذي تعتقد أنك كذلك. rootViewController.addCategoryPopover ربما لا شيء ، لأنك صنعت وحدة تحكم جديدة.

أعتقد أنني أجبت فقط على سؤال مماثل مع الحل الذي اعتدت على رفضه بوبوفر مع أ UIView محملة من أ MKMapView. إن استخدام الحل الخاص بي هو نفسه في الأساس لأي طريقة عرض أخرى تقوم بتحميل البوبوفر.

القي نظرة على:كيفية رفضها على iPad مع uipopovercontroller في mkmapview (SDK3.2). آمل أن يحل مشكلتك.

استخدم nsnotificationcenter إلى dismisspopercontroller fro الأب viewControll

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top