我正在使用x-codes Master-detail模板。我在detailView中有一个按钮,它在detailViewController中也有它的动作。在这个动作方法中,我需要调用masterViewController中的方法。我怎么能这样做?
答案 0 :(得分:1)
您需要获取masterViewController的引用。使用委托模式。
使用此类函数初始化您的detailViewController:
-(id)initWithDelegate:(id)deleg;
with protocol:
-(id)initWithDelegate:(id<myProtocol>)deleg;
并且在你的.h of detailViewController
中id delegate;
with protocol:
id<myProtocol> delegate;
然后是.m的详细信息:
-(id)initWithDelegate:(id)deleg
{
self = [super init];
if(self)
{
delegate = deleg
}
return self;
}
然后在你的函数中
-(IBAction)actionOfmyButton
{
if(delegate != nil && [delegate respondToSelector:@selector(functionFoo:)])
{
[delegate functionFoo:myArgumentsIfnecessary];
}
}
祝你好运^^!