接收者(<diamonddetail4.scheduleservice :) has =“” no =“” segue =“” with =“”标识符=“” mysegue“ =”“

时间:2018-08-29 01:07:20

标签: swift segue

=” “

我有两个视图控制器-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。

请帮助!

1 个答案:

答案 0 :(得分:1)

“ let ss = ScheduleService()”,也许这就是您的情节提要不想响应您的呼叫的原因;此“ ss”是由您的“ ScheduleService.swift”文件创建的,没有故事板的对象。

使用Storyboard初始化viewController应该使用一些特殊方法,例如: “ let ss = UIStoryboard(name:” Main“,bundle:.main).instantiateViewController(withIdentifier:” ScheduleServiceIdentifier“)” 希望这可以对您有所帮助:)。