2010年8月31日火曜日

モーダルView Controllerを閉じる

そのモーダルView Controllerを表示したのと同じView Controllerが閉じるべきなのです。親のView Controllerに、モーダルモードで表示した子を閉じるように通知するにはいくつかの方法がありますが、よく使われる方法はデリゲーションです。

参考PDF:iPhone OS View Controller プログラミングガイド

Day 2 View-basedAppricationテンプレートを使用する

appsamuck.com の実装は古い環境で構築されているため、iphoneSDK3.xで実装してみる。
その準備は以下の通り。

使用テンプレート:
View-BasedApprication
くるっと回転するビュー(modalView)の実装はWindow-basedAppricationテンプレートなるものが用意されているが、IBを使用しないで実装していくのでこちらを元にしていく。
IBを使用しないための準備は、ラベル:noIBを参照する。

デリゲーション:
さらにmodalViewは、デリゲーションを使用するようにと書かれているので 、Window-basedAppricationテンプレートを参考にデリゲートを実装する。

参考PDF:iPhone OS View Controller プログラミングガイド

viewDidLoad メソッド

viewDidLoad

Managing the View
-viewDidLoad
Called after the controller’s view is loaded into memory.
------------------
ビューはメモリー上に展開されただけで、表示はされていない。なので、ここでmodalviewは動かない。

参考URL:iOS Reference Library UIViewController Class Reference

IBを使わない場合のviewとviewControllerの作成

View-basedApricationテンプレートを使用する場合、viewとviewControllerを自作する必要がある。

1.
(プロジェクト名)AppDelegate.mファイルの、application:didFinishLaunchingWithOptionsメソッドで、UIWindowとUIViewControllerを作成してUIWindowに追加する。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    
    window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
 viewController = [[RootViewController alloc] init];
 navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
 
 [window addSubview:navigationController.view];
    [window makeKeyAndVisible];
     
 return YES;
}

2.
UIViewCOntrollerクラスのloadViewをオーバーライドして、self.viewにviewを追加する。

-(void)loadView{
 CGRect bounds = [[UIScreen mainScreen] applicationFrame]; 
 view = [[UIView alloc] initWithFrame:bounds];

 view.backgroundColor = [UIColor redColor];
 self.view = view;
 
 [view release];
}

参考PDF:iPhone OS View Controller プログラミングガイド プログラムによるビューの作成

ViewControllerのロードサイクル(2)

ViewControllerのロードサイクル(1)の続き

loadView

viewDidLoad

viewWillAppear

viewDidAppear

------------------------------












2010年8月26日木曜日

モーダルビューコントローラ

モーダルView Controllerは、新規に1画面分のコンテンツを表示するときに自由に使えるツールです。
モーダルView Controllerは、UITabBarControllerやUINavigationControllerのように、
UIViewControllerの特定のサブクラスではありません。
アプリケーションでモーダルView Controllerを使用する理由としては、... 何らかの情報を収集したり表示したりするために、アプリケーションのワークフローに一時的に割り込みを行うことを意味しています。
参考PDF:
iPhone OS View Controller プログラミングガイド
iPhone アプリケーションプログラミングガイド

2010年8月25日水曜日

ViewControllerのロードサイクル(1)

loadView

viewDidLoad

viewWillAppear

viewDidAppear

------------------------------