0

Я использую x-коды шаблона Master-detail. У меня есть кнопка в detailView, которая имеет свое действие также в detailViewController. В рамках этого метода действия мне нужно вызвать метод, который находится в masterViewController. Как я могу это сделать ?Объект c: вызов метода в masterViewController из detailViewController

ответ

1

вам необходимо получить ссылку на masterViewController. используйте шаблон делегата.

Init ваш detailViewController с этим типом функции:

-(id)initWithDelegate:(id)deleg; 

с протоколом:

-(id)initWithDelegate:(id<myProtocol>)deleg; 

и имел в своем .h из detailViewController

id delegate; 

с протоколом:

id<myProtocol> delegate; 

затем в .м деталей:

-(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]; 
     } 
    } 

удачи ^^!

+0

У меня теперь есть метод initWithDelegate :(), указанный в моем detailViewcontroller.h и определенный в detailViewcontroller.m. Я также добавил код для своих действий. Я, однако, не уверен, что я должен делать с остальной частью кода, которую вы предоставили там. Некоторая помощь пожалуйста. – pnizzle

+0

Важная часть: – xeonarno

+1

if (delegate! = Nil && [delegate replyToSelector: @selector (functionFoo :)]) { [делегат functionFoo: myArgumentsIfnecessary]; } – xeonarno

Смежные вопросы