[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ビデオガイド
Tiny3Dビデオガイド(日本語)
Tiny3D
前回起動時の選択項目にチェックマークを付ける
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
for (int i = 0;i<3;i++) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
UITableViewCell *cell = [myTableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryNone;
}
NSInteger selectedRow = [[myDictionary objectForKey:@"level"]intValue];
NSIndexPath *oldIndexPath = [NSIndexPath indexPathForRow:selectedRow inSection:0];
UITableViewCell *oldCell = [myTableView cellForRowAtIndexPath:oldIndexPath];
oldCell.accessoryType = UITableViewCellAccessoryCheckmark;
}
注目ポイントは4行目の[NSIndexPath indexPathForRow:inSection:]です。これでセクション番号0(つまり一番上のセクション)の行番号i(ここでは一番上の0から三番目の2までが入ります)を示すindexPathが作れます。次の行ではこれを使ってセクション番号0、行番号iのセルへのポインタを獲得しています。そして、そのセルのアクセサリーを「なし(UITableViewCellAccessoryNone)」にしています。この一連の処理で全部のセルからチェックマークを外します(何かの間違いでチェックマークが残らないように、念のために一回全部消してしまっています)。そして今回は詳しく触れませんが、終了時に保存しておいたディクショナリーからどのセルを選択したかの記録を呼び出します。そこから前回選択したセルのポインタを取得、そのアクセサリーを「チェックマークあり(UITableViewCellAccessoryCheckmark)」にしたというわけです。
ちなみに、myTableViewはヘッダーファイル側で
IBOutlet UITableView *myTableView;
@property (nonatomic,retain) UITableView *myTableView;
というプロパティにしてあり、さらにメソッドファイルで
@synthesize myTableView;
と@implementation直後に宣言してあり、deallocで
[myTableView release];
2009.03.04追記
このビューが扱うデータが1つに限定される場合には、ViewWillAppearではなくViewDidLoadに記述しておけば問題ありません。選択させるデータは全く同一でも、複数のビューから呼び出して使い回しをする場合にはViewWillAppearでチェックマークの位置を付け直す必要があります。
実機でのローカライズに失敗する場合
解決方法
- Xcode左側のリストのリソース項目に追加した日本語用のローカライズファイルを選択します。
- ウインドウ上のタイトルバー近くにある情報アイコンを押します。
- ウインドウが開くので中央付近の「エンコーディング」から「Unicode (UTF-16)」を選択します。
- さらにウインドウが開くので「変換」のボタンを押します。
- Xcodeのメニューで「ビルド」>「すべてのターゲットをクリーニング」を選びます。
- あとはいつも通り「ビルドして進行」させます。
これで実機でも日本語表示が行えるようになります。なぜか実機ではローカライズがうまくいかないという場合はお試しあれ。
キー値コーディングの落とし穴
@"key"と書くべきところが@"Key"となっていても、その逆の場合でも、当たり前ですがXcodeは何も言ってくれません。自分が打ち間違いやら思い込み違いやら、その他諸々をしなければ良いだけなんですが、キーの値を英語にすると、複数形にしてsを付けたかどうかや大文字で始めたかそれとも小文字で始めたかなど、後から迷ったりします。そうすると存在するはずの値が拾われないなどという、とても発見が難しいバグが起きたりします。一文字違うだけでも違う値になるのは当たり前で、そうでなければ困るのですけどね。というわけで皆様、キーの値は確実に一貫性を持たせましょう。
あけましておめでとうございます
本年もよろしくお願いします。
年が明けたというのに新作ソフトの追い込みで勝手に忙しい状態が続いております。これも当初の予定を大幅に上回る規模での開発になってしまったのが原因でしょうね。年明けまでにリリースする予定だったのですが、いろいろ機能を欲張ってしまいました。以前リリースしたKigenと比べると、初リリースで持ちうる機能のほとんどは先に持たせてしまおうという方向で開発しています。バージョンアップするとしたら機能アップよりはバグとりやらがメインとなりそうです。
実機でプログラムが動かない場合
なお、再起動は一度電源を切った後(左上のボタンを長押しで表示される電源オフの表示で左にある赤い矢印ボタンを完全に右にスライドさせると電源が切れます。)、左上のボタンを再度長く押して離せば良いです。おまけですが電源を切っている間は先ほどのインジケーターが赤色になっています。