投稿

3月, 2012の投稿を表示しています

storyboard細かいことまとめ

自分が作成するアプリの中でわかった細かいこと segueをソースコードから実行することが出来ます。そのためのsegueをあらかじめstoryboardで作成しておくのですが、viewからはSegueが引けない。ViewControllerからは引ける。ViewControllerから引くやり方はステータスバーからcontrol + ドラッグ。あるいはfile's owner立方体アイコンからドラッグ。 segueの強制実行は [self performSegueWithIdentifier:@"segueの名前" sender:self]; で出来ます。 segue実行時に新しいViewControllerに値を渡したいときは、実行時に走るメソッドの - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ } をオーバーライドします。その中で SecondViewController *secondViewController=(SecondViewController *)[segue destinationViewController]; secondViewController.*** = ***; のようにすればよい ただしpushとmodalの違いがあるようである。 上に書いてあるのはmodalでの仕様。pushはまだよくわからない。 また、新しいViewControllerのviewにUIKit部品を置いてある(storyboardで作成してある)場合、UIKitがインスタンス化されるタイミングに気を付ける必要がある。 prepareForSegueの中では、新しいViewControllerにあるインスタンスは生成されているが、UIKit部品はnil状態なのでアクセスできない。 ”おそらく”実行の順番は 1 performSegueWithIdentifier開始 2 新しいViewControllerのインスタンス化(initなど) 3 prepareForSegue開始 4 prepareForSegue終了 5 UIKitのインスタンス化、画面回転メソッドの呼び出し、viewDidLoadなど 6 performSegueWithId

Xcode4でのアプリの多言語化

多言語化に関するメモ 多言語化の概要 iOSアプリのローカライズは、ファイル単位で行う。この項目をローカライズしたい時はこのファイル、あの項目をローカライズしたい時はあのファイル、というようにローカライズしたい項目に該当するファイルを多言語化させる。 ファイルをローカライズさせると、言語数の分だけ同じ内容のファイルが出来ます。後は各言語毎にファイルを編集します。 はじめにデフォルトを1つ作って(だいたいの場合は英語)それを複製し、それぞれの言語に対応させることがほとんどかと思います。 ローカライズされたファイルはそれぞれの言語フォルダの中に入れられます。 例 ソースが置いてあるところ/en.lproj/Localizable.strings ソースが置いてあるところ/ja.lproj/Localizable.strings 注意点 ファイルのローカライズ状態には、どうも 1,ローカライズされてない 2,ローカライズされているが、en(英語)のみに対応している 3,ローカライズされていて、複数の言語に対応している の3パターンあるようです。1と2の違いに気づきにくい。1から2への変更の場合、何か操作して何も反応がないように見える場合がよくあります。 具体的なやり方 ローカライズしたいファイルを選択し、ファイルインスペクタ(XCodeの右のほうにあるやつ)でLocalizationを行います。 ローカライズすることが多いであろうファイルは storyboard Icon.png InfoPlist.strings アイコンの下に表示するアプリ名 Localizable.strings ソースコード内のNSStringインスタンス など。 プロジェクトの設定のLocalizationsより言語を追加すると一気に複数のファイルを多言語化します。 すると、iPhone用、iPad用それぞれのstoryboard、それからInfoPlist.strings、Icon.pngなど多言語化されます。なにが多言語化されるかはそのときの構成によって違うようです。多言語化出来るものが見つかればそれを多言語化するような感じです。 Xcode4.2でプロジェクトの設定のLocalizationsで多言語化するものは storyboard icon InfoPlist.strings(デフォル