2015-03-29 2 views
0

Я создал проект о раскадровке, есть два контроллера вида на раскадровке с именем «loginViewController», «BViewController», кнопка входа в loginViewController, я установил кнопку входа в систему, вызвав действие segues - это BViewController.отключил раскадровку скачка

в случае кнопки входа в систему, если вход в систему успешно пройден, я хочу перейти на BViewController, иначе отключить скачок, но, похоже, всегда прыгает в BViewController, как я могу позволить ему не прыгать?

if (loginResult) 
{ 
    [self.navigationController popViewControllerAnimated:YES]; 
} 
else 
{ 

} 

ответ

0

Чтобы немного рассказать о ответе @PeterLendvay: если вы присоединяете кнопку segue к кнопке, segue всегда срабатывает, когда пользователь нажимает кнопку (при условии, что кнопка включена.) Если вы хотите добавить логику, которая решает что делать, не связывайте segue непосредственно с кнопкой.

Вместо этого сделайте переход между контроллерами вида. Имя, которое выдает уникальный идентификатор.

Затем присоедините IBAction к кнопке. Теперь вы можете запускать код, когда пользователь нажимает кнопку. В этом коде, решите, следует ли вам запускать сеанс или нет. Если вы хотите вызвать segue, вызовите метод performSegueWithIdentifier.

Вы также можете использовать этот подход для выбора кнопки между несколькими различными сегментами.

+0

очень явный! большое спасибо! –

1

Вы должны установить сегрегацию между UIViewControllers и установить отдельную IBAction на кнопку. В IBAction использовать это:

if (loginResult) 
{ 
    [self performSegueWithIdentifier:@"jumpToBViewController" sender:self]; 
} 

Не забудьте установить идентификатор Segue к «jumpToBViewController» на раскадровке.

+0

благодарит за вашу помощь, сейчас работает. –

Смежные вопросы