4

私は iOS 開発が初めてで、簡単なアプリを作成しました。

これには、ルート ビュー コントローラー (テーブル ビューはセルのリストで構成され、セルをクリックするとコンテンツ ビューが表示されます) が含まれており、別のアプリ内設定ビュー コントローラーには、スイッチ、スライダーなどのいくつかの単純な UI コントロールが含まれており、アプリケーション関連の設定を保存します。ユーザーが何かを変更した後、アプリケーションは永続化のためにファイルに書き込むだけです。

私の質問は、他のView Controllerに設定の変更を反映させる方法ですか?

私の考えでは、アプリが読み込まれると、すべての設定を辞書に初期化し、メモリに保持します。変更が発生すると、ファイルに書き込むだけでなく、その辞書も更新します。コンテンツ ビューが表示されるたびに、その設定ディクショナリを常に読み込むように要求します。

たとえば、ユーザーが設定ビューでフォント サイズを変更した場合、コンテンツ ビュー コントローラーに通知して、次にユーザーに表示するときにすぐにフォント サイズを変更するようにします。

カスタム デリゲート/データ ソースを作成する必要があるかどうかわかりません。

どんな助けでも感謝します。

4

2 に答える 2

4

アプリの設定を保存および取得するには、 NSUserDefaultsを使用する必要があります。それがまさにそのために作られたものであり、自動的に設定をディスクに保存し、後でそれらを取得することを処理します。

設定が変更されたときにアプリの他の部分を更新する場合は、いくつかのオプションがあります。iOS では、かなり簡単な方法の 1 つは、設定の変更を認識して対応する必要があるビュー コントローラーで NSUserDefaultsDidChangeNotification に登録することです。次に、その通知を受信したら、新しい設定を反映するように更新します。

于 2013-02-13T17:47:11.647 に答える
1

別のViewControllerで何かが変更されたときに、さまざまなViewControllerに通知を送信しようとしているようです。次の 2 つのオプションがあります。

  1. 複数の ViewControllers : NSNotificationCenter を使用して通知を投稿でき、その特定の通知を監視している ViewController に通知されます。詳細: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Notifications/Introduction/introNotifications.html#//apple_ref/doc/uid/10000043i
  2. 単一の ViewController : 単一の ViewController のみに通知する必要がある場合は、委譲を使用して ViewController に通知します。詳細: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CommunicatingWithObjects/CommunicateWithObjects.html
于 2013-02-13T18:17:40.300 に答える