Я новичок в программировании под iOS, так что не убивайте меня, пожалуйста :]. У меня есть приложение с авторизацией, и когда я успешно авторизуюсь, я хотел бы перейти ко второму просмотру. Когда авторизация не удалась, я показываю предупреждение. Мой код для авторизации:
- (IBAction)LoginClick:(id)sender {
for(User *user in self.allUsers){
if([user.userName isEqualToString:self.usernameTextField.text] && [user.password isEqualToString:self.passwordTextField.text]){
// Logged in --> go to second view (TableView)
[self performSegueWithIdentifier:@"LoginSegue" sender:self];
}
else{
// Wrong password or username
Alerts *alert = [Alerts new];
[alert showAlert:LOGIN_ERROR];
}
}
}
Я пытался найти простой способ пользовательского перехода (перехода) во второй вид при успешном входе в систему, но не нашел. Теперь у меня есть эта раскадровка:
https://www.dropbox.com/s/dc8h4u920wgt47s/Screenshot%202014-03-03%2011.36.56.png
И код для перехода между View:
[self performSegueWithIdentifier:@"LoginSegue" sender:self];
В результате ошибка:
* Завершение работы приложения из-за неперехваченного исключения «NSGenericException», причина: «Не удалось найти контроллер навигации для перехода «LoginSegue». Переходы push можно использовать только в том случае, если исходный контроллер управляется экземпляром UINavigationController.'
В чем проблема? Зачем мне что-то вроде "Контроллер навигации". Мне нужно создать класс для перехода? Каков самый простой способ решить эту проблему? Спасибо.
РЕДАКТИРОВАТЬ ------- РЕШЕНИЕ
Спасибо всем за помощь. Я добавил навигационный контроллер в свое приложение в качестве начального вида. И я обнаружил, что использование пользовательского перехода и создания класса для этого пользовательского перехода не требуется. Самый простой способ решить мою проблему - подключить ViewControllers (НЕ BUTTON и второй ViewController, поэтому у меня это было в первый раз...) и назвать push-переход. Имя, которое я использовал здесь в коде:
- (IBAction)LoginClick:(id)sender {
for(User *user in self.allUsers){
if([user.userName isEqualToString:self.usernameTextField.text] && [user.password isEqualToString:self.passwordTextField.text]){
// Logged in --> go to second view (TableView)
[self performSegueWithIdentifier:@"LoginSegue" sender:self];
}
else{
// Wrong password or username
Alerts *alert = [Alerts new];
[alert showAlert:LOGIN_ERROR];
}
}
}
Конкретно здесь: [самостоятельно выполнитьSegueWithIdentifier:@"LoginSegue" sender:self];
И все прекрасно работает. Когда я вхожу в систему с правильным паролем и именем пользователя, меня перенаправляют на второй вид.