だから、私はボタンでビューを持っています。このボタンをタップすると、「フォーム シート」スタイルのモーダル ビューが表示されます。そこで変更を行います。この変更により、ボタンを含む最初のビュー (現在はモーダル ビューの背後) の背景色を変更する必要があります。問題は、それを行う方法ですか?
2 に答える
基礎となるページのビューコントローラーはまだそこにあり、そのビューでコードを実行できます。ビューは画面上にないためアンロードされる可能性がありますが、viewcontroller.view は遅延コンストラクターであるため、プロパティを設定すると再作成されます。
秘訣は、基礎となるView Controllerと通信する方法です。ビューコントローラー間の通信を処理する良い方法は、NSNotificationCenter を使用して NSNotification を投稿することです。
「BackgroundColorChangedNotification」などの通知を監視するようにバックグラウンド ビュー コントローラーを設定し、モーダル フォーム ビュー コントローラーからその名前の通知を投稿します。
このアプローチの利点は、アプリ内の他のコントローラーがこの変更について知る必要がある場合、それらはすべて通知のために登録するだけでよく、これらのコントローラーのいずれもお互いについて何も知る必要がないため、コードが適切に分離されることです。
Self.view.parentView を使用すると、最初のビューにアクセスできます
その後、 setBackgrouncolor メソッドを使用して背景を変更できます