0

プロトコルを使用して別のクラスからデータを取得するのに問題があります。データを必要とするMVCにセグエしないクラスでデリゲートを設定する方法がわかりません。MVCでプロトコルを作成し、必要なデータを含む任意のクラスにメソッドを実装します。しかし、segue.destinationViewControllerを使用する場合のように、デリゲーターMVCへの参照がない場合、デリゲーターMVCを参照してデリゲートを設定する方法がわかりません。

4

3 に答える 3

1

このようなもの?

@implementation MyViewController {
// keep a pointer to the data supplier class as long as this object exists
// so that it will continue to exist and send me delegate callbacks
SomeDataClass *myInstanceOfSomeDataClass; // instance variable to point to my data supplier
}

// ...

- (void)updateMyView {
    if (myInstanceOfSomeDataClass == NULL) // I haven't created an instance yet
        myInstanceOfSomeDataClass = [[SomeDataClass alloc] init];
    SomeType *results;
    if (instantResultsAreAvailable)
        results = [myInstanceOfSomeDataClass getResults];
    if (resultsAreOnlyAvailableFromDelegateCallback)
        myInstanceOfSomeDataClass.delegate = self;
}

- (void) delegateCallbackMethod {
//...
}
@end
于 2012-11-30T17:49:17.997 に答える
1

MyViewControllerがSomeDataClassのインスタンスを作成できる場合は、そこにデリゲートを設定します。コントローラ間に接続がない場合は、代わりにNSNotificationを使用できます。これは、インスタンスを接続するための完全に匿名の方法です。通知を送信すると、その通知に登録するすべてのクラスがそれを取得できます。

于 2012-11-30T17:52:25.317 に答える
0

ビューコントローラから別のクラスにデータを渡したいですか?ビューコントローラ間でのこのデータの受け渡しを確認するだけです

于 2012-11-30T17:21:07.423 に答える