2016-09-19 5 views
23

по какой-то нечетной причине, с быстрым 3, метод prepare(for segue: отказывается признать идентификатор segue. У меня есть следующее IBAction подсоединенных к кнопке пары на пользовательском интерфейсе:swift 3 готовность (для segue:) функция сломана?

@IBAction func goToImagesPicker(_ sender: AnyObject) { 
    performSegue(withIdentifier: "showImagePicker", sender: sender) 

} 

@IBAction func goToNamePicker(_ sender: AnyObject) { 
    performSegue(withIdentifier: "showNamePicker", sender: sender) 
} 

Однако в моем prepare(for segue: метода, он не распознает различные идентификаторы SEGUE, я знаю это потому, что моя консоль не записывает в журнале сообщений I присвоенные каждому:

func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) { 

     if segue.identifier == "showImagePicker" { 

      print("This is the Image Picker") 

     } 

     if segue.identifier == "showNamePicker" { 

      print("This is the Name Picker") 

     } 
} 

любые предложения? или это просто ошибка?

+0

Замените следующим кодом: override func prepareForSegue (segue: UIStoryboardSegue, отправитель: AnyObject?) { print ("test"); // Получить новый контроллер просмотра с помощью segue.destinationViewController. // Передача выбранного объекта в новый контроллер представления. } –

ответ

56

Ваш метод не вызван вообще, потому что у вас неправильная подпись. Это было изменено в Xcode 8 бета-6 к:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

Обратите внимание, что тип sender является Any? вместо AnyObject?. У вас должна была быть ошибка после обновления Xcode, которая сообщила вам, что ваш метод не отменяет какой-либо метод из своего суперкласса, который должен был вас подсчитать до того, как вы удалите override.

+0

это, кажется, решение, но, я внимательно прочитал документ, я никогда не видел изменения синтаксиса для объекта-отправителя ... Поэтому я просто удалил переопределение неосознанно. тем не менее, спасибо! –

+1

на сегодня я получаю сообщение об ошибке без переопределения, но переопределение не вызывается – quantumpotato

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