操作完成后更改页面

时间:2011-09-10 13:44:49

标签: objective-c ios ios4

我有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的形式发回)。

2 个答案:

答案 0 :(得分:2)

如何更改观看次数

如果您的应用是基于导航的,那么您可以使用方法[self.navigationController pushViewController:controller animated:YES];添加新的全屏视图。

您可以使用下一种方法在任何地方添加新的全屏视图:[self presentModalViewController:controller animated:YES];

'if-statement'问题。

如果要与对象进行比较,则应使用以下方法之一:

  1. compare:,此方法返回以下值之一:NSOrderedSameNSOrderedDescendingNSOrderedAscending。例如,if ([responseInt compare:@"2"] == NSOrderedSame) {// equal}
  2. 'isEqual:',例如if ([responseInt isEqual:@"2"]) {// equal}
  3. 或具体类别的某些特定比较器
  4. 不要忘记,当您使用==>等进行比较时,您正在比较内存中对象的地址。

答案 1 :(得分:0)

您是否尝试过使用isEqualToString:而不是等号?这是一个更可靠的字符串比较器。你的登录方法返回一个字符串而不是一个整数似乎很奇怪。这有什么理由吗?