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