0

ストーリーボードを使用して新しいタブ付きアプリケーションを生成しました。

これまでのところ私は

TabBarController-> FirstViewController-> SecondViewController-> ModalViewController

tabBarControllerを表示する前に、モーダルビューを開こうとしています。AppDelegate.mに次のコードを追加しました

showModalViewから呼び出されますapplication:didFinishLaunchingWithOptions:;

- (void)showModalView
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    GSLoginViewController *loginView = [storyboard instantiateViewControllerWithIdentifier:@"loginView"];
    [loginView setModalPresentationStyle:UIModalPresentationFullScreen];
    [self.window.rootViewController presentViewController:loginView animated:YES completion:NULL];
}

そしてここに私が持っている出力:

Warning: Attempt to present <ModalViewController: 0x93670d0> on 
<UITabBarController: 0x935d170> whose view is not in the window hierarchy!
4

1 に答える 1

5

Appdelegate は tabbarcontroller がルート ビューであることを認識していないため、これを取得しています。次のようなことを試してください。

UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;

それに応じてコードを追加します。問題は、アプリのデリゲートに tabbarcontroller が rootviewcontroller であることを知らせる必要があるということです。

于 2014-01-24T09:02:29.000 に答える