x-codesマスター-詳細テンプレートを使用しています。detailViewにボタンがあり、そのアクションはdetailViewControllerにもあります。このアクションメソッド内で、masterViewControllerにあるメソッドを呼び出す必要があります。これどうやってするの ?
1 に答える
1
masterViewController の参照を取得する必要があります。デリゲート パターンを使用します。
このタイプの関数を使用して、detailViewController を初期化します。
-(id)initWithDelegate:(id)deleg;
プロトコルで:
-(id)initWithDelegate:(id<myProtocol>)deleg;
あなたの .h の detailViewController にありました
id delegate;
プロトコルで:
id<myProtocol> delegate;
次に、detail の .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];
}
}
がんばれ^^!
于 2012-05-23T01:37:26.380 に答える