在我的应用程序中,我目前有一个Navigation Controller作为初始视图控制器。这个NavigationNavigator非常以以下方式链接我的应用程序,其中NC = NavigationController,VC = ViewController,TC = TabBarController:

NC->LoginHomeVC->TC->(rest of app)

我已经读过TabBarViewController的必须是根视图控制器(我假设这并不意味着它必须是“初始VC”)
在我的AppDelegate.m 的didFinishLaunchingWithOptions方法中,我具有以下代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://myurl.com/xxx/xxx"] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:10];
    [request setHTTPMethod:@"GET"];

    NSError *requestError;
    NSURLResponse *urlResponse = nil;

    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&requestError];

    NSString* result = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];

    if([result isEqualToString: @"logged"])
    {
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
        UIViewController *ivc = [storyboard instantiateViewControllerWithIdentifier:@"TabBarControl"];
        [(UINavigationController*)self.window.rootViewController pushViewController:ivc animated:NO];
        NSLog(@"It's hitting log");
    }

    else if([result isEqualToString: @"notlogged"])
    {
        //do nothing
        NSLog(@"It's hitting notlog.");

        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
        UIViewController *ivc = [storyboard instantiateViewControllerWithIdentifier:@"JumpToLogin"];
        [(UINavigationController*)self.window.rootViewController pushViewController:ivc animated:NO];
    }
    NSLog(@"%@", result);

    return YES;
}

因此,我的条件只是检查用户是否已登录,如果已登录,则将其带到TabBarViewController,如果未登录,则将其带到LoginHomeViewController。目前,我用于“已记录”的代码促使推送到TabBarController。同样,我的LoginHomeVC模态选择框上的登录按钮也指向TabBarController。当执行推送时,NavController的初始视图上的TabController失去颜色和按钮以及所有这些,所有这些都在TC的初始VC类中设置。

问题:我是否需要将LoginHomeVCTabBarVC分开,并将TabBarVC设置为初始VC,或者我可以通过编程方式对TabBarVC进行模式选择(推送可能就是为什么我会丢失按钮等),还是我正在接近LoginHome->TabBar完全错误?

编辑:解决此问题的最简单的 方法是什么?

最佳答案

将您的 TabBarControl 设置为rootview,如果用户未登录,则只需显示您的loginview控制器模型。

关于ios - AppDelegate,LoginHome,TabBar和HTTP GET请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20877248/

10-14 03:51