1

私はObjective-Cをかなり新しくしていますが、まだ私が探している答えを見つけることができませんでした。メインビューの背景画像を変更する

私は特定のイベント(クリスマス)までの日数をカウントする練習アプリを構築しています。すべてうまくいきますが、私は背景画像(ストーリーボードから作成)を変更する簡単な方法を実装したかったのです。アプリの現在の設定は基本的なユーティリティアプリです。代替ビューにはUISegmentedControlが含まれており、カウントダウンラベルの背後に表示される背景画像を設定します。

私は別々のビューをプッシュすることができますが、それは非常に非効率的なようです。私は、NSNotificationsを使って背景イメージを更新できるとはかなり確信していますが、ドキュメンテーションを実装する方法を読んだ後はまだ不明です。

+0

ちょうどそれを得ていない - あなたがしたい問題は、それが背景だ変更するカウントダウン表示に設定ビューから通信するための方法ですか?または、タイマー(日の変更など)に基づいて自動的に変更することをお探しですか? – bryanmac

+0

もっと明確でないことに対する謝罪。設定されたビューからカウントダウンビューに通信する方法を考え、セグメント化されたボタンでユーザーが押したボタンに応じて背景を変更しました。 –

答えて

0

代理人を使用する方法の1つです。デリゲートはコールバックです。これは、あるビューが別のビューへの参照を渡し、それを突き刺すこと(連結を導入する)を回避する。代わりに、正式なプロトコルを介してコールバックを提供し、もう一方に代理を行います。

ここでそれをカバーSOの質問です:

What exactly does delegate do in xcode ios project?

別のオプションは、共有モデルを持っていることですが。シングルトンパターンを使用すると、複数のビューがモデル(データと操作)を共有でき、NSNotificationCenterを使用して通知を送信できます。他のビューは、背景が変更されたという通知を受け取ると、モデルに問い合わせて背景を更新することができます。

関連記事:

Giving notification to another class with NSNotificationCenter

How to share an object with the entire project?

あなたが複数のビューへの変更をブロードキャストしたいとき限りの長所と短所が行くように、基本的には通知が良いです。委譲は、2つのアイテムがある抽象と直接通信する必要がある場合に適しています。

NSNotificationCenter vs delegation(using protocols)?

関連する問題