来自UITabBarController的当前模态视图

dam*_*brz 0 storyboard uitabbarcontroller ios

我使用故事板生成了一个新的选项卡式应用程序.

到目前为止我有

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];
}
Run Code Online (Sandbox Code Playgroud)

在这里输出我:

Warning: Attempt to present <ModalViewController: 0x93670d0> on 
<UITabBarController: 0x935d170> whose view is not in the window hierarchy!
Run Code Online (Sandbox Code Playgroud)

Sur*_*mas 5

你得到这个是因为你的Appdelegate不知道tabbarcontroller是你的根视图.你应该尝试这样的事情.

UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
Run Code Online (Sandbox Code Playgroud)

并相应地添加你的代码.事情是你应该让app委托知道tabbarcontroller是rootviewcontroller.