objective c:来自detailViewController的masterViewController中的call方法

时间:2012-05-23 01:26:41

标签: uiviewcontroller uisplitviewcontroller master-detail method-call detailview

我正在使用x-codes Master-detail模板。我在detailView中有一个按钮,它在detailViewController中也有它的动作。在这个动作方法中,我需要调用masterViewController中的方法。我怎么能这样做?

1 个答案:

答案 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];
        }
    }
祝你好运^^!