一旦用户输入姓名,电子邮件等,他们按下go按钮保存详细信息并进入第二视图但是用户必须按两次go按钮才能将应用程序带到第二个屏幕。我认为IF语句在第一次运行时没有找到保存的详细信息,因此需要再次按下该按钮。
我如何克服这个问题,因为这对用户来说非常令人沮丧。我在下面提供了我的代码。对代码的解释将非常感激。
-(IBAction)LogInButton:(id)sender {
NSString *tempStr = [[NSUserDefaults standardUserDefaults] objectForKey:@"UserName"];
if (tempStr == nil || [tempStr isEqualToString:@""]) {
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:Name.text forKey:@"UserName"];
[prefs synchronize];
ClubSearchViewController *CSearch = [[ClubSearchViewController alloc] initWithNibName:@"ClubSearchViewController" bundle:nil];
[self presentModalViewController:CSearch animated:YES];
}
else {
SearchMenu *SMenu = [[SearchMenu alloc]initWithNibName:@"SearchMenu" bundle:nil];
[self presentModalViewController:SMenu animated:YES];
}
}
提前致谢。
答案 0 :(得分:1)
代码必须进入两个路径之一并呈现一些东西,如果它没有出现在第一次按下,这意味着它没有达到该代码。设置断点以确保它是。
if语句应该是:
if ( tempStr.length == 0 )
由于你可以将消息传递给nil,如果字符串为空或为零,则返回零。它更简单,工作量更少。