2015-08-11 2 views
1

Ну, я кодирую приложение с xcode 6.4 для iOS 8+, я сделал рассказную доску и подключил несколько контроллеров, проблема заключается в том, что я выхожу из приложения и пытаюсь создать новый пользователь и перейдите в меню, в котором произошел сбой приложения. У меня есть точка прерывания исключения, но я не понимаю, почему происходит сбой, любая помощь?iOS 8 и segues, бросающий неожиданное исключение

Код обижая:

@IBAction func listoTapped(sender: UIButton) { 

if usernameRegisterField.text != "" && passwordRegisterField.text != "" { 
    let user = PFUser() 

    //2 
    user.username = usernameRegisterField.text 
    user.password = passwordRegisterField.text 

    //3 
    user.signUpInBackgroundWithBlock { succeeded, error in 
     if (succeeded) { 
      //The registration was successful, go to the wall 
      //self.performSegueWithIdentifier(self.tableViewWallSegue, sender: nil) 
      self.performSegueWithIdentifier(self.showMenuSegue, sender: self) 

      //self.dismissViewControllerAnimated(true, completion: nil) 

     } else if let error = error { 
      //Something bad has occurred 
      self.showErrorView(error) 
     } 
    } 

} else { 

    var alert: UIAlertController = UIAlertController(title: "Error", message: "Los campos no pueden estar vacios", preferredStyle: UIAlertControllerStyle.Alert) 
    alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil)) 
    presentViewController(alert, animated: true, completion: nil) 

} 

} 

И переход Грохот:

Xcode screen segue

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

РЕДАКТИРОВАТЬ: решение для отображения без выделения - включить классы размеров, если вы их отключили, что позволит вам выбрать серию шоу.

+3

Похоже, вы знаете, в какую строку он врезался и что такое исключение. –

+0

Да, это self.performSegueWithIdentifier (self.showMenuSegue, отправитель: self), исключение no. –

+0

И вы уверены, что ваш идентификатор раскадровки для segue прав? – Rob

ответ

1

Из вашей диаграммы, у вас есть экран входа в системе, которая позволяет вам войти или добавить новый пользователь. Этот экран является корнем навигационного контроллера.

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

Ваше новое диалоговое окно пользователя, однако, представлено как модальное из того, что я вижу. Когда вы регистрируетесь, у вас есть приложение show/push segue. Однако вы не можете показывать/нажимать, поскольку с этого момента нет контроллера навигации, что, вероятно, является вашей проблемой.

Вы можете либо:

1) Отклонить экран регистрации и заставить логин.

2) Нажмите и покажите экран регистрации, а не представляйте его по-разному.

Если вы идете на 1), то вместо того, чтобы убирать и прокладывать провода, у вас есть данные, пройдите назад, вы можете использовать unind segue, чтобы передать имя пользователя и пароль, чтобы заполнить экран входа с новым пользователем Детали.

1

В iOS 8, push segue устарел. Вместо этого вы должны использовать show segue.

+0

Я думаю, что шоу-сеги являются устаревшими, я не вижу шоу в меню. –

+0

Я просто проверяю портал разработчиков. * Push * устарел, и вы должны использовать * Show * вместо этого. Какая версия iOS является вашей целью? https://developer.apple.com/library/ios/recipes/xcode_help-IB_storyboard/chapters/StoryboardSegue.html – Boris88

+0

Ммм. Я не вижу шоу в меню segues, просто нажмите, измените мода, замените и настройте –

2

Как вы создаете контроллер входа в систему при выходе из системы? Вы не забудьте создать его с навигацией контроллером, чтобы иметь возможность нажать ..

В противном случае, пожалуйста, приложите некоторую информацию об аварии/журнале

+0

При выходе из системы я просто вызываю PFuser.logOut() и вызываю modal segue в контроллер входа –

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