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