0

我有一个带有三个视图控制器的故事板,带有按钮 Init 的 init 视图、登录视图控制器和列表视图控制器。当我单击第一个视图控制器中的按钮 init 时,我想验证用户是否登录以便切换到登录视图或列表视图。我怎样才能使用segues(segue条件??)

4

2 回答 2

1

当用户像这样在 LOGinViewController 中登录时,您可以将登录值存储在用户默认值中

-(void) doLogin
{
NSString * str = @"Loged In";
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:str forKey:@"login"];
    [defaults synchronize];
}

并在第一个视图控制器中检查此 NSdefault 值是否为 nil。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *userLogIn = [defaults objectForKey:@"login"];


    if (userLogIn.length !=0) {
        //then user Loged in
    }else
    {
       //then user not Loged in
    }

此代码只是示例,您可以根据需要对其进行更改。

于 2013-03-29T10:50:02.247 回答
1

你可以做这样的事情

BOOL isLoggedIn = [[NSUserDefaults standardUserDefaults] boolForKey:@"isLoggedIn"];      
NSString *headingStoryboardID = isLoggedIn ? @"YourAlreadyLoggedInVC_ID" : @"YourLoginVC_ID";

if([headingStoryboardID isEqualToString:@"YourAlreadyLoggedInVC_ID"]) {
     AlreadyLoggedInClass *vc1 = (AlreadyLoggedInClass *)[self.storyboard instantiateViewControllerWithIdentifier:@"YourAlreadyLoggedInVC_ID"];
     [self presentViewController:vc2 animated:YES completion:nil];
} else {
     LoginViewController *vc2 = (LoginViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"YourLoginVC_ID"];
     [self presentViewController:vc2 animated:YES completion:nil];
}

OBS:丑陋且未编译的代码,但希望这个概念能够被理解。

因评论而编辑 要执行推送 segue,您调用

[self.navigationController pushViewController:vc1 animated:YES];

反而。

于 2013-03-29T11:18:39.903 回答