Изменить страницу после выполнения действия - PullRequest
0 голосов
/ 10 сентября 2011

У меня есть 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"];
}

После успешного входа пользователя мне нужно перенаправить его в другой файл 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"];

}

}

Как видите, я пытаюсь что-то записать в журнал, как только одно из условий выполнено, но оно не входит ни в одно из утверждений (loginResponse отправляется обратно как 2).

Ответы [ 2 ]

2 голосов
/ 10 сентября 2011

Как изменить представления

Если ваше приложение основано на навигации, вы можете добавлять новые полноэкранные виды, используя метод [self.navigationController pushViewController:controller animated:YES];.

Везде, где вы можете добавлять новыеПолноэкранный режим с использованием следующего метода: [self presentModalViewController:controller animated:YES];.

Проблема с оператором if.

Если вы хотите сравнить с объектами, вы должны использовать один из следующих методов:

  1. compare:, этот метод возвращает одно из следующих значений: NSOrderedSame, NSOrderedDescending, NSOrderedAscending.Например, if ([responseInt compare:@"2"] == NSOrderedSame) {// equal}
  2. 'isEqual:', например, if ([responseInt isEqual:@"2"]) {// equal}
  3. или некоторые конкретные компараторы для конкретного класса

Не забывайте, чтокогда вы сравниваете, используя == или > и т. д., вы сравниваете адреса объектов в памяти.

0 голосов
/ 10 сентября 2011

Вы пытались сделать isEqualToString: вместо знака равенства? Это более надежный компаратор строк. Также кажется странным, что ваш метод входа возвращает строку, а не целое число. Есть ли причина для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...