TabBarController上的presentViewController导致“尝试在TabBarVC上显示* VC,其视图不在窗口层次结构中”

时间:2014-04-15 19:15:15

标签: presentmodalviewcontroller presentviewcontroller

我的根视图控制器是在委托中加载的选项卡栏控制器。每个选项卡都是一个表视图控制器。首次加载应用程序时,我想通过presentViewController弹出一个登录界面,我在Tab Bar Controller的viewDidLoad方法中有这个。它导致我读过的窗口层次结构错误 - 尽管没有一个解决方案对我有用。我尝试在第一个选项卡的viewDidLoad方法中显示模态视图,但这导致了相同的错误。

在viewDidLoad的标签栏视图控制器中,我的代码为:

 CLLoginViewController *loginVC = [[CLLoginViewController alloc] init];
    loginVC.delegate = self;
    [self.view addSubview:loginVC.view];
    [self presentViewController:loginVC animated:NO completion:nil];

1 个答案:

答案 0 :(得分:0)

你的问题很模糊,但我明白了,你想在加载tabController之前提出登录屏幕。

所以更好的方法是,在你的AppDelegate设置窗口的rootViewController时,做这样的事情

if([[NSUserDefaults standardUserDefaults] boolForKey:@"showTabBar"]){
     self.window.rootViewController  = tabBarControllerObject;   //TabBarView is loaded
     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"showTabBar"];
}
else{
     self.window.rootViewController  =   tabBarControllerObject;   //Login Screen is loaded for first time.
}

希望这有帮助

相关问题