由于这篇文章,在找到关于缺少 Segue 执行的好解决方案之后
我遇到了另一个问题:按照前面提到的帖子中描述的方法,我正在仪表板 VC 中检查我的身份验证令牌,如果未设置,我会激活一个指向 LoginVC 的 segue,从而利用委托机制按顺序操作完成后关闭视图。现在,问题是在第一次运行时,我在 LoginVC 显示之前得到了 Dashboard VC 显示片刻。我想显示登录屏幕立即隐藏(不知何故)仪表板VC。换句话说,我希望用户不会注意到下面到底发生了什么。
任何的想法?这是我当前的故事板设置
我在 DashboardVC 中检查我的凭据,如下所示:
- (void)viewWillAppear:(BOOL)animated {
//check if the token is set,if not trigger the Login screen
NSString* token = nil;
NSUserDefaults* userPref = [NSUserDefaults standardUserDefaults];
token = [userPref objectForKey:@"AuthToken"];
if (token == nil) {
NSLog(@"Token not present,Login required!");
[self performSegueWithIdentifier:@"sLogin" sender:nil];
[super viewWillAppear:NO];
}
//[super viewWillAppear:YES];
}
// if the Segue was triggered by the "Logout" button we erase the token otherwise
// simply perform the login since there was no token at all
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([sender tag] == 5) {
NSLog(@"User selected Logout");
//remove the token
NSUserDefaults* userPref = [NSUserDefaults standardUserDefaults];
[userPref removeObjectForKey:@"AuthToken"];
[userPref synchronize];
NSLog(@"Token removed.");
}
if ([segue.identifier isEqualToString:@"sLogin"]) {
LoginViewController *livc = segue.destinationViewController;
livc.delegate = self; // For the delegate method
}
}
@ElJay,我可能再次需要你的帮助 :)
谢谢大家!