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

広告

関連記事

githubを使っての開発(1) -実践github-flow-

今は開発でgithubを利用しています。 開発をおこなう上で、githubをどのように扱えば良いの

記事を読む

no image

CakePHPのモデルのキャッシュではまった -新しく追加したカラムに値が入らない-

タイトルのとおり、ちょこっとCakePHPではまったのでメモ。 * 作業内容 -MySQLで、ある

記事を読む

no image

MacBook ProにGitのインストール

MacBook ProにGitをインストールしようと思いたち、思ったより手間取ってしまったので備忘録

記事を読む

no image

Androidアプリ開発 -画像を加工してセピア色にしてみる-

* やりたいこと ギャラリーから選んだ画像を加工してセピア色にしたい * ソース ** 画像を取得

記事を読む

setup

Google Appsで独自ドメインメールの利用

独自ドメインでメアドを持ちたかったのでGoogle Appsを利用してみました。 その各種設定の覚

記事を読む

no image

jQuery Mobileのバージョンアップではまった – pushStateの存在 –

jQuery Mobileをつかってスマートフォン対応をしたときにはまったこと。 * 前提

記事を読む

no image

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

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

記事を読む

no image

Objective-cで悩んでいたこと −アクセサのことについて−

* 疑問 以前書いたiPhoneアプリを開発していて(Objective-Cを触っていて)疑問に思

記事を読む

no image

iPhoneアプリ開発 芳名帳アプリ作成(3) -名前を書けるようにする-

* 今までの流れ - -[http://pplace.jp/2013/06/1531/:title=

記事を読む

no image

iPhoneアプリ開発 −遷移先のViewControllerに値を引き継ぎたい−

例えば、トップページに複数個のボタンがあって、「A」と「B」というボタンを押下した際に、同じView

記事を読む

広告

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 ↑