2012-01-20 3 views
0

したがって、ボタンが表示されます。私はこのボタンをタップし、 "Form Sheet"というスタイルのモーダルビューが表示されます。そこで私は変更を加えました。この変更により、ボタン付きの最初のビューの背景色が変更されなければなりません。質問は、それを行う方法ですか?モーダルビューフォームシートの下にビューを更新

答えて

1

を使用して、その背景を変更することができ、最初のビュー

にアクセスできるようになります。ビューは画面に表示されていないのでアンロードできますが、viewcontroller.viewは遅延コンストラクタなので、プロパティを設定するとそれが再作成されます。

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

"BackgroundColorChangedNotification"のような通知を観察し、その名前の通知をあなたのモーダルフォームビューコントローラから送信するように、あなたの背景ビューコントローラを設定します。

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

+0

徹底的な回答ありがとうございます。それは助けになった。私は自分自身のためのNSNotificationsを開いた:) – Randex

0

Self.view.parentViewあなたはあなたが、その後、基礎となるページののViewControllerがまだそこにある、まだそのビューでコードを実行することができますsetBackgrouncolor方法

+0

parentViewプロパティはありませんが、self.parentViewControllerはありません。私のparentViewControllerはUINavigationControllerです。 – Randex

+0

ええと..それはparentViewControllerすることができます..私は実際に自分のiPhoneとこのコードで私は主にxcodeのオートコンプリート機能を持っているので、コードミスの理由です – Shubhank

+1

AppleはiOS4とiOS5の間でparentViewControllerプロパティが動作する方法を変更 - この方法の使用には注意が必要です。 –

関連する問題