iPhoneアプリ開発 芳名帳アプリ作成(4) -設定準備-
今までの流れ
画面構成
今回の芳名帳アプリは以下の画面で構成しています。
- メイン画面(MainViewController)
- 設定画面(SettingViewController)
- 記帳画面(GuestBookViewController)
設定の前段階
やりたいことは以下。
- ペンのサイズの設定
- ペンの色の設定
上記を設定で出来るようにするために、まず以下を実装します。
- 設定を保存する先を用意する
- デフォルトのペンサイズを保存する
設定の保存先
設定で保存する情報は多くないので、「NSUserDefaults」を使います。
※保存する容量が多い場合はアプリの起動が遅くなったりと面倒なので注意です。
以下の様な感じで保存・取得出来ます。
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; //保存 [ud setValue:@"value" forKey:KEY]; //取得 String *key = [ud stringForKey:KEY]
デフォルトのペンサイズを保存
まず、以下を実装します。
1. 起動時に設定データがあるか確認
2. 設定データが無ければデフォルト数値を保存
//初期値を入れておく + (void)setInit { NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; if([[ud stringForKey:SETTING_VERSION] isEqualToString:version]) { return; } //Version [ud setValue:version forKey:SETTING_VERSION]; //最初の設定 [ud setFloat:kDefaultPenSize forKey:SETTING_PEN_SIZE]; }
ここでVersionを保存しているのは、Versionがあがって保存する種類が増えた時に対応するためです。
ペンサイズの取得&保存
//取得 + (CGFloat)penSize { NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; return [ud floatForKey:SETTING_PEN_SIZE]; } //保存 + (void)setPenSize:(CGFloat)penSize { if(penSize < 0) penSize = kDefaultPenSize; NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; [ud setFloat:penSize forKey:SETTING_PEN_SIZE]; }
これでペンサイズの取得と保存ができます。
あとは、設定画面でペンサイズを指定するように実装すればOK。
その他でやったこと
デフォルトだと、トップにナビゲーションが表示されます。
メインのページには要らないので以下で非表示にします。
- (void)viewWillAppear:(BOOL)animated { [self.navigationController setNavigationBarHidden:NO animated:animated]; [super viewWillAppear:animated]; }
広告
関連記事
-
order byでハマったこと -order by、group byの処理順序-
CakePHPでorder byとgroup byを使っていてはまったことについてのメモ。 *
-
CakePHP1.3でテストコード(2) -フィクスチャをいじってみる(テストデータの動的登録)-
cakePHP1.3でのSimpleTestを使ったテストケースの第2回目。 今回は、動的にテストデ
-
とりあえず動作させてみよう「PHP+OAuthでTwitterに投稿」(追記あり)
で自動でTwitterに投稿したいと思ったのでTwitter周りについて調べてみた。 *
-
jQueryMobileでタッチ(スワイプ)してページ遷移 -Paginationプラグインの利用-
スマートフォン対応をしていてタッチしてページ遷移させたいケースがあるかと思います。 そんな時に便利
-
Twitterでプロテクトをかけているユーザが投稿したステータスを取得する方法
* 前提 ID Twitterの各投稿にはIDが存在していています。 そのIDを元にステータス
-
Facebookがちょっとコワイ vol.1 -自分の情報をコントロールできない-
Facebookの最近の広がり方などを見ていて、少々不安を感じたので思ったことをつらつらと書いてみま
-
FacebookページをFacebookアプリで表示 -iPhoneアプリ編-
* やりたいこと Facebookアプリを入れている人には、アプリでFacebookページで表示。
-
Jenkins+Capistranoを設定した時にしたこと -「ポート変更」「公開鍵認証」対応-
* 前段階 上記にあるように、Jenkins+Capistranoの設定をしています。 ただし、設
-
Jenkins + スマホアプリ(1) -スマホアプリ用CI環境を作ってみよう-
前回までは、iPhoneアプリでのCI環境でした。 TestFlightがAndroidアプリにも
-
PhoneGapを触ってみた(3) -画像を扱う(Camera APIを使ってみる)-
今回は、PhoneGapのCamera APIを使って携帯のアルバムにある画像を扱ってみます。