0

x-codesマスター-詳細テンプレートを使用しています。detailViewにボタンがあり、そのアクションはdetailViewControllerにもあります。このアクションメソッド内で、masterViewControllerにあるメソッドを呼び出す必要があります。これどうやってするの ?

4

1 に答える 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 に答える