Получатель (<DiamondDetail4.ScheduleService :) не имеет перехода с идентификатором «mySegue» - PullRequest
0 голосов
/ 29 августа 2018

У меня есть два контроллера представления - ScheduleService и CalendarDay. Я создал переход от ScheduleService к CalendarDay вручную, перетащив его из ScheduleService в CalendarDay. Тогда я был очень осторожен, чтобы установить имя идентификатора на «mySegue». Если я щелкну по переходу на главной раскадровке, то в сеансе раскадровки отобразится идентификатор со значением «mySegue» (без кавычек, конечно).

Теперь в ScheduleService у меня есть следующая функция:

@IBAction func gotoCalendarDay() {
        self.performSegue(withIdentifier: "mySegue", sender: self)
    }

Я вызываю эту функцию из файла Swift с именем "CalendarView.swift" следующим образом:

@objc func buttonAction(sender: UIButton!) {
        let ss = ScheduleService()
        ss.gotoCalendarDay()
    }

Кнопка, которая вызывает эту функцию при нажатии, была создана программно. Поэтому, когда я нажал кнопку, я ожидал, что она вызовет функцию «gotoCalendarDay» в контроллере представления ScheduleService. По всей видимости, он вызывает функцию без проблем, но по какой-то странной причине говорит, что переход не может быть найден, даже если я специально дал полю «Идентификатор» на панели «Раскадровка в Storyboard» значение.

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 29 августа 2018

"let ss = ScheduleService ()" , возможно, именно поэтому ваша раскадровка не хочет отвечать на ваш вызов; Это «ss» - объект, созданный вашим файлом «ScheduleService.swift» без раскадровки.

Инициирование viewController с раскадровкой должно использовать некоторые специальные методы, например: "let ss = UIStoryboard (name:" Main ", bundle: .main) .instantiateViewController (withIdentifier:" ScheduleServiceIdentifier ")" Надеюсь, это поможет вам :).

...