как вызвать сцену раскадровки условно с кнопки

У меня есть приложение, первая сцена которого - это экран входа в систему. При нажатии кнопки входа в систему, если имя пользователя и пароль верны, должна быть вызвана следующая сцена. В противном случае отображается предупреждение. Но я не могу понять, как получить следующую сцену условно.

if ([jsonDict valueForKey:@"success"] && [jsonDict valueForKey:@"redirect"]) {

                    NSLog(@"%@", [jsonDict valueForKey:@"success"]);
                    NSLog(@"%@", [jsonDict valueForKey:@"redirect"]);
                    NSString *redirect = [jsonDict valueForKey:@"redirect"];
                    [self performSegueWithIdentifier:@"next" sender:self];
                }
                else {
                    NSArray *jsonArray = [jsonDict valueForKey:@"errors"];
                    NSString *err = [jsonArray objectAtIndex:0];
                    NSLog(@"%@", err);
                    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Invalid Credentials!" message:err delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
                    [alert show];
                }

person Hassan Zaheer    schedule 12.06.2013    source источник


Ответы (2)


Настройте переход к следующему контроллеру представления в вашей раскадровке и дайте этому переходу уникальный идентификатор. Затем, если имя пользователя и пароль в порядке, просто позвоните

[self performSegueWithIdentifier:@"yourSegueIdentifier" sender:self];
person gasparuff    schedule 12.06.2013

Используйте приведенный ниже код:

- (void)validateLogin{
//code to check username and password are correct
if(correct){
[self performSegueWithIdentifier:@"SignInToNextScreen" sender:self];
}else{
 UIAlertView *myalert = [[UIAlertView alloc]initWithTitle:@"Login Failed" message:@"Invalid Username/Password" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];   
   }
 }

//SignInToNextScreen — это идентификатор перехода для запуска вручную.

См. прикрепленный снимок экрана введите здесь описание изображения

person Ramu Pasupuleti    schedule 12.06.2013
comment
Извините, я новичок в раскадровках. Не могли бы вы подсказать мне, как установить идентификатор перехода? - person Hassan Zaheer; 12.06.2013
comment
@user2160539, одну минуту. Я выложу тебе видео - person Ramu Pasupuleti; 12.06.2013
comment
Посмотрите это видео... Вы узнаете, как настроить переход вручную.....youtube .com/ - person Ramu Pasupuleti; 12.06.2013
comment
Я сделал это. Но теперь я столкнулся с другой проблемой. Переход вызывается, даже если условие входа не выполняется. Ниже мой код. - person Hassan Zaheer; 12.06.2013
comment
@user2160539 user2160539, вставьте код в свой вопрос ... Segue должен передавать uiviewcontroller, но не непосредственно как действие кнопки - person Ramu Pasupuleti; 12.06.2013
comment
Я скопировал код в своем вопросе. иначе выполняется условие в случае неверного входа в систему. но следующее представление все еще вызывается - person Hassan Zaheer; 12.06.2013
comment
@ user2160539, код кажется правильным, проверьте один раз свой IBAction для этой кнопки. Не нажимайте кнопку и перетащите на следующий экран. Выберите «Весь экран входа» и перетащите его на следующий экран, как показано в видео. - person Ramu Pasupuleti; 12.06.2013
comment
@user2160539 user2160539, приятно слышать... Если мой ответ полезен... примите его... Так что это поможет другим - person Ramu Pasupuleti; 12.06.2013