如何根据条件设置初始视图控制器?

时间:2015-08-13 07:38:24

标签: ios objective-c iphone storyboard

根据条件用户登录服务器或不显示不同的模板。如果用户未登录到应用程序服务器,则需要显示LoginViewController [UIViewController]否则显示TabBarViewcontroller [UITabBarViewController]。

因为我第一次使用Storyboard。任何人都可以建议我在故事板中处理这种情况吗?

4 个答案:

答案 0 :(得分:1)

在app delegate的application:didFinishLaunchingWithOptions:方法中创建窗口和所需的初始视图控制器:

self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];  
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
if ([self isUserLoggedIn]) {  
    // Show the dashboard
    self.window.rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"TabBarViewcontroller"];
} else {
    // Login
    self.window.rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
}
[self.window makeKeyAndVisible];

答案 1 :(得分:1)

我这样做了。

首先,您创建一个名为LoginViewController的东西。它实现了您的登录逻辑。你的根控制器是UITabBarController。

现在在AppDelegate中:

%dp0

因此,您的应用代表,检查您是否已存储通行证和登录信息。如果是,则使用它们登录并切换到根视图控制器。在我的例子中,它是一个标签,显示带有余额,交易等的几个标签

如果没有登录并通过,则在根视图控制器的顶部上显示登录视图控制器

@session是你当前的会话。正如您在代码中看到的那样,登录正在使用排队操作。

如果您需要更多详细信息,请点击我。

答案 2 :(得分:0)

您可以通过故事板名称选择ViewController:

 UIStoryboard *yourStoryboard = [UIStoryboard storyboardWithName:@"yourstoryboard"
                                                          bundle:nil];
 YourViewController *vc = [yourStoryboard instantiateViewControllerWithIdentifier:@"yourViewControllerIdentifier"];

然后呈现vc

答案 3 :(得分:0)

UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@“Main”bundle:nil]; if([self isUserLoggedIn]){
    //显示仪表板     self.window.rootViewController = [storyboard instantiateViewControllerWithIdentifier:@“first”]; } else {     // 登录     self.window.rootViewController = [storyboard instantiateViewControllerWithIdentifier:@“second”]; }