2011-11-29 9 views
10

私は自分のSettings.bundleのRoot.plistにいくつかのテキストフィールド項目を持っています。私は自分のアプリケーションのためにそれらのすべてが必要ですが、私はそれらのうちの1つが隠されているか、または編集不可能であることをユーザーに要求します。例えば。ユーザーが自分のiPhoneを設定 - > MyAppに移動すると、そのフィールドの1つが表示されないようにするか、編集のために無効にします。これは可能ですか?Settings.bundleのフィールドを非表示/非表示にすることはできますか?

答えて

4

さらに調査したところ、私は私の質問に対する答えと私が解決しようとしている問題に対する答えを見つけました。

質問: Settings.bundle/Root.plistのフィールドを非表示/無効にすることはできますか?
回答:

問題:どのように私はしっかりと私のアプリのための認証情報を格納していますか?
回答:キーチェーンサービスが組み込まれています。

出典:Keychain Services Tasks for iOS

+1

これは奇妙です。 Nike +のアプリケーション設定では、スイッチフィールドの状態に基づいてフィールドを無効にします。記載されていない機能? – batkuip

+1

@batkuipいいえ、これはNike +がiOSに組み込まれているためだと思います。私はこれを行う別のアプリを見たことがない。 – Thomas

+0

私たちに教えていただきありがとうございます;)+1 – katzenhut

2

短い答えではありません。長い答え:私はあなたのアプリのどこかにRoot.plistを使用していると推測します。もしそうなら、あなたが記述した方法で実際に動作する必要がある場合は、2つのplistファイルを作成し、それらを実行時にマージすることです。

つまり、iOS設定ページでユーザーに変更させたいフィールドのみを使用してRoot.plistを作成します(たとえば、現在非表示にしたいフィールドがない場合)。残りのあなたのアプリ内で扱うフィールド。

実行時に、まずRoot.plistを読み込み、使用するデータ構造内の別の.plistファイルの内容をマージします。

非常に滑らかではありますが、可能性があります。

0

は、「テキストフィールド」からplistのタイプを設定する「のタイトルは、」あなたはもはや、ユーザによって編集可能ですが、アプリで読み取ることができるフィールドを取得することで動作しますします。

UIの一貫性が保たれているとは思わないので、環境設定項目を無効にするのは理想的な解決策ではありません。

5

もちろん可能です。アイテムタイプをtitleに変更するだけです。

コードから値を保存して読み取ることはできますが、しかし、それはアプリに表示されません。設定。

+0

多値タイプの場合、タイトルに変更するとデータが失われます。これは機能しません。 – iosMentalist

関連する問題