xyk blog

最近は iOS 開発の記事が多めです。

画面遷移のメモ

環境:iOS SDK 7.1

UINavigationController での画面遷移

AppDelegate から初期画面のコントローラに遷移する

初期画面となる UIViewController を作成、それを使って UINavigationController を作成する。
そして UIWindow のrootViewControllerプロパティにセットする。

UINavigationController *viewController = [[UINavigationController alloc] initWithRootViewController:[[TopViewController alloc] init]];
self.window.rootViewController = viewController;
次の画面のコントローラに進む

次の画面となる UIViewController を作成して UINavigationController のpushViewController:animated:メソッドで渡す。

UIViewController *viewController = [[NextViewController alloc] init];
[self.navigationController pushViewController:viewController animated:YES];
前の画面のコントローラに戻る

UINavigationController のpopViewControllerAnimated:メソッドを呼ぶ。

[self.navigationController popViewControllerAnimated:YES];

UINavigationController を使わない画面遷移

AppDelegate から初期画面のコントローラに遷移する

初期画面となる UIViewController を作成して UIWindow のrootViewControllerプロパティにセットする。

UIViewController *viewController = [[TopViewController alloc] init];
self.window.rootViewController = viewController;
次の画面をモーダル表示する

次の画面となる UIViewController を作成して UIViewController のpresentViewController:animated:completion:メソッドで渡す。

UIViewController *viewController = [[NextViewController alloc] init];
[self presentViewController:viewController animated:YES completion:^{
    // 完了時の処理
}];
モーダル画面を閉じて前の画面に戻る

UIViewController のdismissViewControllerAnimated:completion:メソッドを呼ぶ。

[self dismissViewControllerAnimated:YES completion:^{
    // 完了時の処理
}];