0

こんにちは、別のView Controllerからメソッドを呼び出そうとしていますが、機能していますがメイン画面に表示されていません。ログは、メソッドが機能していることを示していますが、コントローラーの新しいインスタンスである可能性が高いです。

これが私のViewControllerクラスのメソッドです

//.h First
{
- (void)updateCells;
}

//.m First
- (void)updateCells
{
//Code in here
}

メソッドを呼び出す別の (2 番目の) ビュー コントローラーからのメソッドでは、次のようになります。

ViewController *viewController = [[ViewController alloc] init];

    dispatch_async(dispatch_get_main_queue(), ^{
        [viewController updateCells];
    });

dispatch_async画面上でupdateCellsを実行しようとしましたが、メソッドが呼び出され、その中に何も表示されません。新しいviewControllerインスタンスを作成するべきではありませんか? その場合、代わりに何をすべきですか? さまざまなクラスからメソッドを呼び出す方法に慣れていないことに感謝します。

4

1 に答える 1

1

近所の犬を転がしてもらいたい場合は、ポンドに行って新しい犬を飼って、「転がって!」と叫びますか。それから頭を撃ち、隣人の家に行って、彼女の犬が転がっているのを見つけることを期待しますか? それがあなたがここでしていることだからです。

既存のビュー コントローラーupdateCellsupdateCells.

代わりに、新しいView Controllerを作成し、updateCellsそれにメッセージを送信してから、割り当てを解除します。それが既存のView Controllerに何らかの影響を与えると予想するのはなぜですか?

「あなた」(つまり、メソッドを送信する必要があるupdateCellsメソッド) が既存のビュー コントローラーへの参照を取得する方法は、特定のアプリに完全に依存します。「あなた」がその既存のView Controllerへの参照を取得する方法を理解するのに助けが必要な場合は、質問を編集して、関連するView Controllerの実際のクラス名などの詳細を含めます(これにより、それらについて話しやすくなります)。それらのクラスの既存のインスタンスがどのように作成されるか。

于 2013-10-02T19:03:19.840 に答える