そのモーダルView Controllerを表示したのと同じView Controllerが閉じるべきなのです。親のView Controllerに、モーダルモードで表示した子を閉じるように通知するにはいくつかの方法がありますが、よく使われる方法はデリゲーションです。
参考PDF:iPhone OS View Controller プログラミングガイド
そのモーダルView Controllerを表示したのと同じView Controllerが閉じるべきなのです。親のView Controllerに、モーダルモードで表示した子を閉じるように通知するにはいくつかの方法がありますが、よく使われる方法はデリゲーションです。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; RootViewController *viewController = [[RootViewController alloc] init]; navigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; [viewController release]; [window addSubview:navigationController.view]; [window makeKeyAndVisible]; return YES; }
-(void)loadView{ CGRect bounds = [[UIScreen mainScreen] applicationFrame]; UIView *contentView = [[UIView alloc] initWithFrame:bounds]; contentView.backgroundColor = [UIColor redColor]; self.view = contentView; [contentView release]; }
モーダルView Controllerは、新規に1画面分のコンテンツを表示するときに自由に使えるツールです。参考PDF:
モーダルView Controllerは、UITabBarControllerやUINavigationControllerのように、
UIViewControllerの特定のサブクラスではありません。
アプリケーションでモーダルView Controllerを使用する理由としては、... 何らかの情報を収集したり表示したりするために、アプリケーションのワークフローに一時的に割り込みを行うことを意味しています。
ウインドウの最初のフレームサイズは、必ず画面全体を覆うように設定するべきです。
プログラミングによってウインドウを作成する場合は、作成時に望みのフレーム矩形を明示的に渡渡さなければなりません。画面の矩形と異なる矩形は渡さないでください。画面の矩形は、UIScreenオブジェクトから次のようにして取得できます。
UIWindow* aWindow = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen]bounds]] autorelease];参考PDF:
画面上の矩形領域を定義します。UIWindow
その矩形領域内にコンテンツを表示する責務(コンテンツ表示)と、その領域内で発生したタッチイベントに応答する責務(イベント処理)を負っています。
1つ以上のサブビューを管理できます。
iPhoneアプリケーションは、通常、UIWindowクラスのインスタンスで表わされるウインドウを1つだけ持っています。
1つ以上のビューをそこに追加して表示します。その後は、このウインドウオブジェクトを再び参照することはほとんどありません。
UIWindowの親クラスはUIViewなので、通常はUIWindowオブジェクトのビュー関連プロパティを直接操作することはありません。
1つの画面のビューは、1つのView Controllerオブジェクトによって支えられています。
(View Controllerの仕事は、)ビューに表示するデータを管理することと、更新をアプリケーションのほかの部分と調整することです。
自身が管理する一連のビューを作成したり、メモリ不足状態のときにビューをメモリから削除する責務を負っています。
int retVal = UIApplicationMain(argc, argv, nil, nil);
int retVal = UIApplicationMain(argc, argv, nil, @"bonefire_3_xAppDelegate");
We need to reference the label in our code so we can update the labelInterfacce Builder(IB)を使って、labelを追加する所で、Xcodeのバージョンアップにより説明のようには"Class Outlets"がなかった。
Now we need to update our class fileOutletsを追加したので、クラスファイルを更新する。既にファイルを更新していた場合、上書きされてしまうのでFileMergeでMergeする。
Now we need to wire up the Label in Interface Builder to the UILabel in the class fileInterface Builderを使って、countdownLabelとFile's Ownerを接続する。