iPhoneアプリでログイン画面を表示するにはどうすれば良いか?けっこう悩んでいたが、Stack Overflow先生に聞いたら、難なく回答が返ってきた。答えは、ios – Perform Segue on ViewDidLoad – Stack Overflow

簡単に説明すると、起動直後はメイン画面を表示する。メイン画面を表示する前に、ログイン画面を表示する必要があればログイン画面を表示する。

上の画像のように、Login画面のプロパティで、LoginViewControllerにIdentifierをつけおく。

MainControllerViewに書くコード。

[c]

– (void)viewWillAppear:(BOOL)animated {

if (![self hasLoginSettings]) {

[self showLoginView];

}

}

/*

  • ログイン設定があるかを判定する。

*/

– (BOOL)hasLoginSettings {

return NO;

}

/*

  • ログイン画面を表示する。

*/

– (void)showLoginView {

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@“Storyboard” bundle:nil];

LoginViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@“LoginViewController”];

[vc setModalPresentationStyle:UIModalPresentationFullScreen];

vc.delegate = self;

[self presentModalViewController:vc animated:NO];

}

[/c]

メイン画面のviewWillAppearを使うと、メイン画面の表示前に呼び出せる。あと、Storyboard上では、MainViewからLoginViewへの線は引かなくても良い。

2012/08/12:追記

UITabBarControllerを利用すると、上記のコードでは動かなかった。UITabBarControllerでは、「(void)viewDidAppear:(BOOL)animated」に”showLoginView”を書くと動くようだ。