iPhoneアプリ開発 芳名帳アプリ作成(4) -設定準備-

公開日: : iPhone, IT


 今までの流れ

 画面構成

今回の芳名帳アプリは以下の画面で構成しています。

  • メイン画面(MainViewController)
  • 設定画面(SettingViewController)
  • 記帳画面(GuestBookViewController)

 設定の前段階

やりたいことは以下。

  • ペンのサイズの設定
  • ペンの色の設定

上記を設定で出来るようにするために、まず以下を実装します。

  • 設定を保存する先を用意する
  • デフォルトのペンサイズを保存する

 設定の保存先

設定で保存する情報は多くないので、「NSUserDefaults」を使います。
※保存する容量が多い場合はアプリの起動が遅くなったりと面倒なので注意です。

設定の保存を管理するUserInfoクラスを用意します。
スクリーンショット 2013-06-15 14.02.20

以下の様な感じで保存・取得出来ます。

  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];
 }

広告

関連記事

no image

order byでハマったこと -order by、group byの処理順序-

CakePHPでorder byとgroup byを使っていてはまったことについてのメモ。 * 

記事を読む

no image

CakePHP1.3でテストコード(2) -フィクスチャをいじってみる(テストデータの動的登録)-

cakePHP1.3でのSimpleTestを使ったテストケースの第2回目。 今回は、動的にテストデ

記事を読む

no image

とりあえず動作させてみよう「PHP+OAuthでTwitterに投稿」(追記あり)

で自動でTwitterに投稿したいと思ったのでTwitter周りについて調べてみた。 * 

記事を読む

no image

jQueryMobileでタッチ(スワイプ)してページ遷移 -Paginationプラグインの利用-

スマートフォン対応をしていてタッチしてページ遷移させたいケースがあるかと思います。 そんな時に便利

記事を読む

no image

Twitterでプロテクトをかけているユーザが投稿したステータスを取得する方法

* 前提 ID Twitterの各投稿にはIDが存在していています。 そのIDを元にステータス

記事を読む

no image

Facebookがちょっとコワイ vol.1 -自分の情報をコントロールできない-

Facebookの最近の広がり方などを見ていて、少々不安を感じたので思ったことをつらつらと書いてみま

記事を読む

no image

FacebookページをFacebookアプリで表示 -iPhoneアプリ編-

* やりたいこと Facebookアプリを入れている人には、アプリでFacebookページで表示。

記事を読む

no image

Jenkins+Capistranoを設定した時にしたこと -「ポート変更」「公開鍵認証」対応-

* 前段階 上記にあるように、Jenkins+Capistranoの設定をしています。 ただし、設

記事を読む

Jenkins + スマホアプリ(1) -スマホアプリ用CI環境を作ってみよう-

前回までは、iPhoneアプリでのCI環境でした。 TestFlightがAndroidアプリにも

記事を読む

no image

PhoneGapを触ってみた(3) -画像を扱う(Camera APIを使ってみる)-

今回は、PhoneGapのCamera APIを使って携帯のアルバムにある画像を扱ってみます。

記事を読む

広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

広告

no image
[感想] Effective Objective-C 2.0 ☆☆☆☆★(4.5)

* 構成 - 第1章 Objective-Cに慣れる -

no image
[感想] iOSアプリテスト自動化入門 ☆☆☆(3.0)

* 構成 - Chapter 1 テスト自動化への取り組み

DeployGateを試してみた(iOS編) -DeployGateがiOSに対応-

今までのDeployGate - -[http://pplace.

iPhone/iPadアプリを開発するためにやったこと

今までに、iPhoneを3本ほどリリース((リリースしたアプリは全て1

no image
ターミナルでgitのコマンドを補完したりブランチ名を表示する – macでgitを便利に使うために –

* やりたいこと macのターミナルでgitをいじっていると -今の

→もっと見る

PAGE TOP ↑