iOS開発:アプリ起動後にログイン画面を表示する
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”を書くと動くようだ。