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