0

押すとテーブルビューをロードするボタンがあります。ユーザーがテーブル ビュー セルを選択すると、didSelectRowAtIndexPathが呼び出されます。その時点で、テーブル ビューを閉じて、以前に開いていたビューを表示します。私はそれをすべてやり遂げました。しかし、選択したセルのテキストを前のビューのボタン ラベルに取得するにはどうすればよいでしょうか?

現在、最初のView Controllerがアクセスできる「最後に選択された」値を持つシングルトンデータストア(データは静的)があります。didSelectRowAtIndexPath はそれをうまく設定します。しかし、以前のビュー コントローラーは、テーブル ビューが閉じられたことをどのように認識しているのでしょうか。また、どのボタンが押されたかを追跡して、どのラベルを変更すればよいかを知るにはどうすればよいですか?

これは正しい方法ではないかもしれないと感じています。もしそうなら、より良い方法を教えてください。

4

1 に答える 1

1

コントロールを以前のビュー コントローラに戻すと、viewWillAppear と viewDidAppear が呼び出されます。これらの方法のいずれかを使用して、「最後に選択した」に有効な値があるかどうかを確認できます。

別の方法として、didSelectRowAtIndexPath に前のコントローラーが必要とする情報をまとめて、それをオブジェクト (または userinfo 辞書) として NSNotification を投稿することができます。そうすれば、ビューが表示されたときに何かする必要があるかどうかを判断する必要なく、通知に直接応答できます。

編集: addSubview の使用に関する上記のコメントを読んだところで、viewWillAppear/viewDidAppear の提案を忘れて、NSNotification を使用してください。

于 2012-04-24T15:22:56.787 に答える