UIPopoverController 委托委托方法未被调用

Posted

技术标签:

【中文标题】UIPopoverController 委托委托方法未被调用【英文标题】:UIPopoverControllerDelegate delegate methods not being called 【发布时间】:2013-04-16 17:03:43 【问题描述】:

我有一个带按钮的屏幕。单击该按钮将显示一个带有两个按钮的弹出框。当弹出框被解除时,我希望能够使用以下方法:

#pragma mark - UIPopoverControllerDelegate
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController 
NSLog(@"OrderViewController.m -popoverControllerDidDismissPopover start");

弹出视图有自己的类:

#import <UIKit/UIKit.h>
#import "MenuItemModel.h"

@interface SelectedItemsOptionsViewController : UIViewController
@property (weak) id <UIPopoverControllerDelegate> delegate;
@property (strong, nonatomic) MenuItemModel *item;

@end

创建弹出框的类有:

@interface OrderViewController : UIViewController <PageViewControllerDelegate,                                        
UITableViewDataSource, UITableViewDelegate, ServiceConnectorDelegate,
UIPopoverControllerDelegate>

所以 OrderViewController - 想知道 SelectedItemsOptionsViewController 何时被解除。

我声明了方法(第一个代码块),我将委托设置为:

SelectedItemsOptionsViewController *destViewController = (SelectedItemsOptionsViewController *)segue.destinationViewController;

popSegue = (UIStoryboardPopoverSegue *)segue;

[destViewController setDelegate:self];
destViewController.item = toDisplay;

因此,据我所知,我将委托设置为 OK...委托属性在 SelectedItemsOptionsViewController.m 中是 @syntheized ,这让我有点抓狂。

【问题讨论】:

你是如何关闭你的弹出框的? 只需点击屏幕上未被弹出窗口覆盖的任何位置。 (我不是以编程方式进行的,我读到这不会称为解雇) 同样的问题。解决了吗? 【参考方案1】:

我可能在这里误解了一些东西,但看起来您正在为 UIViewController 类分配委托,但是您在情节提要中的哪里分配 popOver 其委托?

【讨论】:

以上是关于UIPopoverController 委托委托方法未被调用的主要内容,如果未能解决你的问题,请参考以下文章

无法实现 UIPopoverController 委托

用 -dismissPopoverAnimated 解散 UIPopoverController:不会调用委托?

UIPopoverController 委托未在解雇时被调用

iOS UIPopoverController委托不工作,仍然是零

Monotouch:了解委托机制模式

如何观察 UIPopoverController 何时被解雇?