— boreal-kiss.com

[iPhone]スタンフォード大学iPhone app講義のpodcast第6, 7回

第6回、7回講義(2009/04/20、22、要iTunes)聴講。第6回はUIViewControllerについて、第7回はUINavigationControllerについて。

第6回

何もない。マジで何も感想がない。UIViewControllerを知らない人以外は見なくてよい(かも)。ただ、後半にNSUserDefaultsを使ったデータ保存の簡単なデモをやっていたのでData persistenceについて知らない人には有益(かも)。

第7回

第6回と異なり、良い意味で細かい情報満載だった。Dave Mark – Beginning iPhone DevelopmentErica Sadun – The iPhone Developer’s Cookbookに解説されていない有益な情報多数、UINavigationControllerは思っていた以上にフレキシブルなことがわかった。UINavigationControllerはUITableViewとあわせて説明されている場合が多いが(欲張りな教本では一緒くたに解説されていることが多い)、今回はUITableViewは一切用いず説明しているため構造が理解しやすくなっている。

  • 意外だったのだけど、UINavigationController配下(に限ったことではないが)のViewController間のデータの受け渡しはグローバル変数(Singletonモデルなど)を用いずに引数でちゃんと渡せと強調していた。コントローラーが再利用しにくくなるからとか何とか一般的な説明をしていたが、そもそもCocoaのコントローラー、特にViewControllerを再利用する機会があるのかどうか疑わしい。
  • UIViewController.navigationControllerというプロパティが存在した!UINavigationController配下のViewControllerはAppDelegateなどを呼び出さずにUINavigationControllerオブジェクトにアクセスできる(UINavigationController配下でない場合はもちろんnil)。
  • UIBarButtonSystemItemの存在を知った!APIドキュメント見たら20個ぐらい種類あって、しかもマーク画像まで掲載されていて感動。例えばプラスマーク表示したい時は、
    UIBarButtonItem *item = [[UIBarButtonItem alloc] 
    	initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
    	target:self 
    	action:@selector(add:)];
    self.navigationItem.rightBarButtonItem = item;
    [item release];

    (注意: ViewController内にadd:メソッドが定義済みと仮定)

  • Backボタン(戻るボタン)の名前の変更方法があった!例えば親ViewController内に
    self.title = @"This is my title";
     
    UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] 
    	initWithTitle:@"Back" 
    	style:UIBarButtonItemStyleBordered 
    	target:nil 
    	action:nil];
    self.navigationItem.backBarButtonItem = backButtonItem;
    [backButtonItem release];

    と書いておくと、子ViewController内に表示されるBackボタンのタイトルを”This is my title”から”Back”に表示変更できる。(Backボタンはtargetもactionも設定不要)

0 comments
Submit comment