0
我正在使用x-code主 - 細節模板。我在detailView中有一個按鈕,在detailViewController中也有它的動作。在這個動作方法中,我需要調用masterViewController中的一個方法。我怎樣才能做到這一點 ?目標c:從detailViewController調用masterViewController中的方法
我正在使用x-code主 - 細節模板。我在detailView中有一個按鈕,在detailViewController中也有它的動作。在這個動作方法中,我需要調用masterViewController中的一個方法。我怎樣才能做到這一點 ?目標c:從detailViewController調用masterViewController中的方法
您需要獲取masterViewController的引用。使用委託模式。
INIT你detailViewController這種類型的功能:
-(id)initWithDelegate:(id)deleg;
與協議:
-(id)initWithDelegate:(id<myProtocol>)deleg;
,不得不在你的detailViewController
id delegate;
的.H與協議:
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];
}
}
好運^^!
我現在有我的detailViewcontroller.h中列出的initWithDelegate :()方法,並在detailViewcontroller.m中定義。我還爲我的行動添加了代碼。然而,我不知道我應該怎麼做與你提供的代碼在那裏.. ..一些幫助.. – pnizzle
的重要組成部分是: – xeonarno
if(delegate!= nil && [delegate respondToSelector:@selector( functionFoo :)]) { [delegate functionFoo:myArgumentsIfnecessary]; } – xeonarno