我遇到了一个我真不知道如何解决的问题:
我在AppDelegate中定义了一个TabBarController。
UITabBarController *tabBarController = [[UITabBarController alloc] init];
在这个TabBarController中我有几个其他的NavigationControllers里面有UiVieController:
ProgramController *programContr = [[ProgrammController alloc] init];
UINavigationController navControllerPro = [[UINavigationController alloc] initWithRootViewController:programContr];
ManualController *manualContr = [[ManualController alloc] init];
UINavigationController navControllerMan = [[UINavigationController alloc] initWithRootViewController:manualContr];
我将NavigationController添加到TabBarController:
tabBarController.viewControllers = [NSArray arrayWithObjects:navControllerPro,navControllerMan, nil];
我将tabBarController设置为rootViewController:
self.window.rootViewController = tabBarController;
[[self window] makeKeyAndVisible];
工作正常。 现在我想在其上添加一个“登录屏幕”。 我是这样做的:
[tabBarController presentModalViewController:navControllerLogin animated:YES];
现在TabBarController在后台加载其内容,即使LoginViewController在前面也是如此。如果在LoginViewController上按下按钮,如何加载TabBarController?
请帮帮我。
答案 0 :(得分:1)
每次都会加载标签栏控制器,因为您将其设置为rootViewController。
你应该将普通的viewController设置为root ...如果登录成功,你应该调用tabBarController来加载。
换句话说,在appDelegate中应该只有登录窗口..而在loginViewController中,如果登录正常,你应该调用并加载你的tabBarController及其所有控制器..使用storyboard使它变得容易很多