رفض iPad uipopovercontroller من داخل وحدة تحكم المحتوى الخاصة به
-
27-09-2019 - |
سؤال
لذلك لدي بوبوفر مع زر فيه. عندما يتم دفع هذا الزر ، أريد أن يذهب البوبوفر. يبدو الأمر سهلاً بما فيه الكفاية ، لكن لا يمكنني معرفة ذلك لحياة لي. الكود الذي أستخدمه لإظهار البوبوفر أدناه:
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