我有2页的xib文件。一个是登录页面,另一个是欢迎页面。
这是登录功能:
-(IBAction)login{
NSLog(@"login begin");
NSString *loginResponse = [self tryLogin];
NSLog(@"%@", loginResponse);
loginError.text = loginResponse;
NSUserDefaults *session = [NSUserDefaults standardUserDefaults];
[session setInteger:1 forKey:@"islogged"];
}
用户成功登录后,我需要将它们重定向到另一个名为Notifications的xib文件。现在我该怎么做呢?
由于某种原因,当我在函数中放入if语句时,它不会进入语句。
-(IBAction)login{
NSLog(@"login begin");
NSString *loginResponse = [self tryLogin];
NSLog(@"%@", loginResponse);
if(responseInt == @"2"){
NSLog(@"login error 2");
UIAlertView *alertURL = [[UIAlertView alloc] initWithTitle:@"Error!"
message:@"Username or password is wrong!"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[alertURL show];
[alertURL release];
///////////////////////////////////////////////////
}else if(responseInt == @"0"){
NSUserDefaults *session = [NSUserDefaults standardUserDefaults];
[session setInteger:1 forKey:@"islogged"];
}
}
正如您所看到的,只要满足其中一个条件,我就会尝试使用nslog,但它不会进入任何语句(loginResponse会以2的形式发回)。
答案 0 :(得分:2)
如何更改观看次数
如果您的应用是基于导航的,那么您可以使用方法[self.navigationController pushViewController:controller animated:YES];
添加新的全屏视图。
您可以使用下一种方法在任何地方添加新的全屏视图:[self presentModalViewController:controller animated:YES];
。
'if-statement'问题。
如果要与对象进行比较,则应使用以下方法之一:
compare:
,此方法返回以下值之一:NSOrderedSame
,NSOrderedDescending
,NSOrderedAscending
。例如,if ([responseInt compare:@"2"] == NSOrderedSame) {// equal}
if ([responseInt isEqual:@"2"]) {// equal}
不要忘记,当您使用==
或>
等进行比较时,您正在比较内存中对象的地址。
答案 1 :(得分:0)
您是否尝试过使用isEqualToString:而不是等号?这是一个更可靠的字符串比较器。你的登录方法返回一个字符串而不是一个整数似乎很奇怪。这有什么理由吗?