5

これはすべて私の最初の投稿であり、可能な限り正確になるように努めます。iOS のプロトコル/デリゲートの実装に関する多数の記事を読みましたが、すべての例が失敗しました。A と B のコントローラーがあり、A から BAh にデータを送信したいとします。

    @protocol exampleprot <NSObject>
@required
-(void) exampledmethod:(NSString *) e1;
@end

@interface ViewController
{
__weak id <exampleprot> delegate
}

-- プッシュしようとしている手順の中にいます

[delegate  examplemethod:@"test"]

Bh

@interface test2 : UiViewcontroller <exampleprot>

Bm では、メソッド -(void) exampledmethod:(NSString *) e1; を実装します。


だから私は間違っているのですか?

4

3 に答える 3

0

A から B にデータを送信する場合は、戻り値の型で B にデリゲートを定義する必要があります。B では、デリゲート宣言があります。

@protocol example <NSObject>
@required
-(NSString *) exampleMethod;
@end

次に、A でこのメソッドを実装します。Amでは、あなたが持っている必要があります

-(NSString *) exampleMethod:(NSString *) e1 {
    // Implementation of this delegate method
    return self.stringYouWantToPassToB
}

次に、B では、そのデリゲートを使用して A から必要なものを取得するだけです。Bm では、

- (void)methodInB {
    // Get string from delegate
    self.string = [self.delegate exampleMethod];
}
于 2013-10-30T10:28:40.410 に答える
0

データを送信する場所からビューコントローラーのデリゲートプロパティを設定する必要があります=データを送信する場所へのビューコントローラー。フセインの答えは正しいと思います。正しい方法で行っているかどうかを確認するだけです。

于 2013-10-30T13:17:49.203 に答える