2014/06/02

[ios]設定画面を作ろうとしているが、よくわからん

よくわからんシリーズだ。

iOSで、設定画面を作ろうとしている。
Rejectされたので、なんか設定できるようにしてやろうという考えだ。
iOSの設定アプリに追加するやつじゃなくて、アプリの中に組み込むやつを作る。

設定画面と言えば、UITableViewController。
Storyboardエディタで、これを貼り付ける。
ついでにUITableViewControllerを継承した新規クラスも作成する。
そしてStoryboardのCustom Classとして指定してやれば、何かあったときに作ったクラスのメソッドが呼ばれるようになる。

UITableViewをStoryboardでやるとき、デフォルトはDynamicなんだけど、Staticという選択もできるとあった。
Staticでやると、実装部分を減らせるらしいので、今回はそうしてみよう。

--------
Static Cellって、あまり情報が見つからない。

設定画面なので、設定した情報を取ってきたり、反映したりしないといかん。
それをどうしていいかが・・・。

最終的には、didSelectRowAtIndexPathで全部やることにした。
セクションがいくつかあって、そのセクションごとにチェックマークが1つあるような設定画面だったのだけど、その「セクションごとに」とかを自動でやれるのかどうかがわからん。
だから、cellForRowAtIndexPathでタップされた位置のセクション番号を取ってきて、indexPathsForVisibleRowsで持っているセルを全部さらい、同じセクションだったらチェックマークをクリアし、最後にタップされたセルにチェックマークする、という泥臭い方法にした。
あー、かっこわるいーー。

設定値はNSUserDefaultsで保持することにした。
設定項目は2つしか作ってなかったんだけど、NSMutableDictionaryで管理させた。
NSUserDefaultsって、NSDictionaryは保持するけど、NSMutableDictionaryがよくわからんかった。
めんどくさいけど、一度NSDictionaryとして取得し、NSMutableDictionaryに変換することにした。保持するときは、setObjectでNSMutableDictionaryすればよかった。

dictionaryForKeyで取得するからNSDictionary形式になったんだけど、objectForKeyで取得すればよいのか?
でも、「オブジェクトを保存する」っていうしくみがどう動いているかわからないので、型が違うとだめそうな気もする。

なんか、こういう基礎的なところがまだ理解できてないよなぁ。。。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。