0

だから、私はボタンでビューを持っています。このボタンをタップすると、「フォーム シート」スタイルのモーダル ビューが表示されます。そこで変更を行います。この変更により、ボタンを含む最初のビュー (現在はモーダル ビューの背後) の背景色を変更する必要があります。問題は、それを行う方法ですか?

4

2 に答える 2

1

基礎となるページのビューコントローラーはまだそこにあり、そのビューでコードを実行できます。ビューは画面上にないためアンロードされる可能性がありますが、viewcontroller.view は遅延コンストラクターであるため、プロパティを設定すると再作成されます。

秘訣は、基礎となるView Controllerと通信する方法です。ビューコントローラー間の通信を処理する良い方法は、NSNotificationCenter を使用して NSNotification を投稿することです。

「BackgroundColorChangedNotification」などの通知を監視するようにバックグラウンド ビュー コントローラーを設定し、モーダル フォーム ビュー コントローラーからその名前の通知を投稿します。

このアプローチの利点は、アプリ内の他のコントローラーがこの変更について知る必要がある場合、それらはすべて通知のために登録するだけでよく、これらのコントローラーのいずれもお互いについて何も知る必要がないため、コードが適切に分離されることです。

于 2012-01-20T15:41:05.893 に答える
0

Self.view.parentView を使用すると、最初のビューにアクセスできます

その後、 setBackgrouncolor メソッドを使用して背景を変更できます

于 2012-01-20T15:26:29.510 に答える