【问题标题】:Swift - Impossible to use performSegueWithIdentifierSwift - 无法使用 performSegueWithIdentifier
【发布时间】:2015-11-14 23:47:41
【问题描述】:

我已经为这个问题苦苦挣扎了几个小时。 我有一个包含 tableView 和自定义单元格的视图。我想要做的是从自定义单元格中执行我的 viewController 中的 segue。我做的第一件事是在我的 cell.swift 中创建一个名为“parent”的变量,类型为“viewController”。

weak var parent : ViewController!

在那之后,我只是想像这样执行转场:

parent.performSegueWithIdentifier("eventDetails", sender: parent)

我有以下错误:Receiver (<Deevent.ViewController: 0x7fb99074f5d0>) has no segue with identifier 'eventDetails'

所以我尝试了其他方法...我在 ViewController 中创建了一个按钮并将 segue 连接到下一个视图(故事板文件中的所有内容)

在我的 viewController.swift 中,我创建了以下函数

func viewEventDetails() {
    performSegueWithIdentifier("eventDetails", sender: self)
}

这个在我的 cell.swift 中:

func viewEvent(sender: AnyObject) {
    parent.viewEventDetails()
}

因此,当我从单元格中调用它时,它会因与以前相同的错误而崩溃,但是当我单击按钮时它正在工作。我什至尝试以编程方式单击按钮btnDetails.sendActionsForControlEvents(UIControlEvents.TouchUpInside),但我遇到了完全相同的错误。

我已经尝试清理我的项目并将其从模拟器中删除。我真的在这里错过了一些东西......希望有人可以帮助我。

谢谢!

【问题讨论】:

  • 如果你想用performSegueWithIdentifier触发一个segue,像这样连接它:stackoverflow.com/a/26457259/1630618
  • 感谢您的回答。这已经是我做的方式(在创建按钮之前)

标签: ios iphone swift segue


【解决方案1】:

听起来你需要给你的 segue 一个标识符。

一个视图控制器可以有多个segue,因此您需要定义要使用哪一个。就您而言,在您的代码中,您使用的是标识符"eventDetails"

假设您使用的是 Storyboard,您需要点击两个视图控制器之间的 segue 箭头,并在右侧的 Attributes Inspector 中,将 Identifier 值设置为 "eventDetails"

【讨论】:

  • 你好,我没有提到它,但是我的 segue 在我的故事板中当然有正确的标识符。
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-15
  • 2022-01-23
  • 2016-01-10
  • 1970-01-01
相关资源
最近更新 更多