我在从父 SplitViewController 设置的 ViewController 上有一个属性:
财产申报/综合
@interface DownloadRecipesViewController_iPad : DownloadRecipesViewController<PopoverMenuDelegate, RecipeChangeDelegate>{
id <NSObject, PopoverMenuParentDelegate, RecipeChangeDelegate, RecipeDownloadedDelegate> _selectionDelegate;
}
@property (strong) UIBarButtonItem *btnMenu;
@property (strong) id <NSObject, RecipeChangeDelegate, RecipeDownloadedDelegate> selectionDelegate;
@implementation DownloadRecipesViewController_iPad
@synthesize btnMenu;
@synthesize selectionDelegate = _selectionDelegate;
viewDidLoad
我在父 SplitViewVC 的方法中连接了委托:
连接代表
self.downloadVc = [self.storyboard instantiateViewControllerWithIdentifier:@"RecipeDownload"];
[self.downloadVc setSelectionDelegate:self];
Child VC 中的一个按钮调用一个方法来触发一个事件到父 ViewController,但是当这个事件被调用时,委托是 nil 并且事件不会被触发。我绞尽脑汁想方设法找出发生这种情况的原因,但我完全不知所措。
代表在这里为零(解雇代表):
-(IBAction)didTapMenu:(id)sender{
if([_selectionDelegate respondsToSelector:@selector(shouldToggleMenu)])
[_selectionDelegate shouldToggleMenu];
}
我也尝试过没有支持属性,但遇到了同样的问题。