2010/11/21

[iOS][Objective-C]設定画面を設定

頻度が多くない設定を行う場合は、設定画面アプリから行うことが多いのですが、実際に、その実装方法を調べました。

1.「Resource」の上で右クリックして、「追加」→「新規ファイル」を選択
Photobucket
2.「Resource」→「Settings Bundle」を選択
Photobucket
3.ファイル名は、「Settings.bundle」のまま
Photobucket
4.「Root.plist」を次のように設定を行いビルドをすればオッケー
Photobucket

実際に、設定アプリではこのようになります。
Photobucket
Photobucket

プロジェクト内のソース(Objective-C)で設定した値を取得したい場合は、このようにすれば取得することができます。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if([defaults stringForKey:@"kSettingCountryKey"] == nil){
NSLog(@"デフォルト値が設定されていません。");
}

kSettingCountryKeyは、Root.plistで設定したKey値です。

取得しているメソッドにstringForKeyを使っていますが、値によってコールするメソッドも変わってきます。

詳しいメソッドは、NSUserDefaultsクラスで確認することができます。

if文を使ってnilかどうかを判定している理由は、設定アプリを通して一回も設定していない場合、返す値がnilとなるためです。
(実際に検証済み)

後、実機でテストを行う場合は、いったん、テストアプリの削除を行い再インストールする必要があります。

今回、リストから一つ選択する設定方法を採用しましたが、他にも設定方法があって、それについては、Settings Application Schema Referenceで確認することができます。

また、全体の流れは、iOS Application Programming GuideのImplementing Application Preferencesで確認しましたが、後半で紹介されているサンプルの仕様が古いので、Settings Application Schema Referenceで各設定方法の仕様を確認する方が最短だと思います。

是非、参考に。

0 コメント:

コメントを投稿