我有两个视图控制器-ScheduleService和CalendarDay。通过从ScheduleService到CalendarDay并将其拖动到CalendarDay,我创建了从ScheduleService到CalendarDay的手动设置。然后,我非常小心地将标识符的名称设置为“ mySegue”。如果单击主情节提要板上的segue,则情节提要中segue将显示其中带有值“ mySegue”的标识符(当然不带引号)。
现在在ScheduleService中,我具有以下功能:
@IBAction func gotoCalendarDay() {
self.performSegue(withIdentifier: "mySegue", sender: self)
}
我从一个名为“ CalendarView.swift”的Swift文件中调用此函数,如下所示:
@objc func buttonAction(sender: UIButton!) {
let ss = ScheduleService()
ss.gotoCalendarDay()
}
按下时调用此功能的按钮是通过编程方式创建的。因此,当我单击按钮时,我希望它在ScheduleService视图控制器上调用“ gotoCalendarDay”函数。它显然可以毫无问题地调用该函数,但是由于某种奇怪的原因,即使我在Storyboard Segue面板中为Identifier字段指定了值,也无法找到segue。
请帮助!
答案 0 :(得分:1)
“ let ss = ScheduleService()”,也许这就是您的情节提要不想响应您的呼叫的原因;此“ ss”是由您的“ ScheduleService.swift”文件创建的,没有故事板的对象。
使用Storyboard初始化viewController应该使用一些特殊方法,例如: “ let ss = UIStoryboard(name:” Main“,bundle:.main).instantiateViewController(withIdentifier:” ScheduleServiceIdentifier“)” 希望这可以对您有所帮助:)。