Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 塞格被处决了两次_Iphone_Swift_Xcode - Fatal编程技术网

Iphone 塞格被处决了两次

Iphone 塞格被处决了两次,iphone,swift,xcode,Iphone,Swift,Xcode,Segue被执行两次,导致下一个VC。如何防止这种情况发生?你是执行两次序列的人——一次是在故事板中自动执行(因为你的序列是从单元原型发出的动作序列),一次是在代码中执行,当你说self.performsguewithidentifier。如果您不想让segue执行两次,请删除其中一个 就我个人而言,我的建议是您完全删除didSelectRow,并将您的self.selectedClubState作业移动到prepareForSegue删除情节提要中的当前片段。然后按住CTRL键将从viewCo

Segue被执行两次,导致下一个VC。如何防止这种情况发生?

你是执行两次序列的人——一次是在故事板中自动执行(因为你的序列是从单元原型发出的动作序列),一次是在代码中执行,当你说
self.performsguewithidentifier
。如果您不想让segue执行两次,请删除其中一个


就我个人而言,我的建议是您完全删除
didSelectRow
,并将您的
self.selectedClubState
作业移动到
prepareForSegue

删除情节提要中的当前片段。然后按住CTRL键将从viewController(而不是单元格)拖动到下一个视图控制器,并将其命名为“Cities”。现在,当您选择一个单元格时,
didselectrowatinexpath()
将首先启动,并调用
performsguewithidentifier()

但是,如果在
didselectrowatinexpath()
中要做的只是获取执行segue的行,那么您可以从故事板中保留单元格segue的原始设置,删除
didselectrowatinexpath()
并在
prepareforsgue()
中执行以下操作:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
   self.selectedClubState = stateNamesForDisplay[indexPath.row]
   self.performSegueWithIdentifier ("Cities", sender: self)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    var clubsToPassToCitiesViewController = [clubObject]()
    if segue.identifier == "Cities" {
        for club in clubsForTable{
            if club.clubState == self.selectedClubState{
                clubsToPassToCitiesViewController.append(club)
            }
        }
       let citiesView = segue.destinationViewController as? citiesViewController
       citiesView?.clubsForChosenCity = clubsToPassToCitiesViewController
   }
}

谢谢@Shades,我只需要从手机中删除我的segue,然后从故事板中拖出一个!没错,当从情节提要中拖动时,即使我仍然在Xcode 11.3.1上测试了
didselectRowatinedexpath()
method:)的性能检查,它也对我有效
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if let indexPath = self.tableView.indexPathForSelectedRow {
        self.selectedClubState = stateNamesForDisplay[indexPath.row]
    }
    var clubsToPassToCitiesViewController = [clubObject]()
    if segue.identifier == "Cities" {
        for club in clubsForTable{
            if club.clubState == self.selectedClubState{
                clubsToPassToCitiesViewController.append(club)
            }
        }
       let citiesView = segue.destinationViewController as? citiesViewController
       citiesView?.clubsForChosenCity = clubsToPassToCitiesViewController
   }
}