【问题标题】:IOS compiler warning "Multiple segues with identifier work"IOS 编译器警告“使用标识符工作的多个 segues”
【发布时间】:2021-08-12 07:07:00
【问题描述】:

所以我正在为多个 segues 重新使用一个视图,我有一个 UITableView,它包含 4 个单元格

工作 1 - 标记 1 工作 2 - 标记 2 工作 3 - 标记 3 Work4 - 标记 4

我已经相应地标记了每个单元格,现在,在准备使用标识符进行转场时,我获取所选索引行的标签,并将其设置在新的下一个视图中,然后我转至该视图。

在另一个视图中,我截取值并在视图中相应地设置一些东西。

为此,我需要 4 个具有相同标识符的 segue,每个静态单元格一个。 (我通过情节提要设置了单元格操作)

这导致了这个警告,有什么办法可以解决这个问题吗?

编辑:我想我必须以编程方式连接 segues,那么我该怎么做呢?

【问题讨论】:

  • 你为什么不只使用 4 种不同的转场?!

标签: ios cocoa


【解决方案1】:

您的 Storyboard 上可能不能有两个具有相同标识符的 segue。我非常怀疑你也可以在代码中做到这一点。那么为什么要麻烦而不是只使用 1 个将由 [self preformSegueWithidentifier:@""]; 以编程方式调用的通用 segue?

【讨论】:

  • 我可以,我没有收到编译器错误,我收到警告
  • @JohnDOe 那么我假设他们会同时被调用。
  • 您不会收到错误消息,因为至少有一个具有该名称的 segue。谁知道它会运行哪一个,或者这样做会搞砸什么。
  • 运行哪一个都没有关系,它的目的是对 UITableCell Click 执行一个操作
  • 我只需要对静态表中的 CellSelected 进行操作,使用 didSelectedRowAtIndexPath 来触发 segue
【解决方案2】:

我不明白为什么您“需要 4 个具有相同标识符的 segue”。这个警告是有充分理由的。

如果我告诉你“去和吉姆谈谈”。你知道 4 个叫 Jim 的人,你怎么可能知道我指的是哪个 Jim。同样的事情也发生在这里,你告诉一个视图控制器使用一个 segue,但是它有 4 个命名相同的东西,所以它不知道要使用什么 segue。以编程方式执行此操作不会解决任何问题。

您只会收到警告,因为代码可以运行,它会运行一个 segue,但您不知道它会运行哪一个。

【讨论】:

  • 如果我正确理解了这个问题,情况并非如此。使用你的例子,这就像说“去和吉姆说话”,当 4 个人可以和吉姆说话时。你可以问他们每个人,他们都得到相同的转义:“与吉姆交谈”,他们都去吉姆。为什么要让“杰克 - 与吉姆交谈”和“莎拉 - 与吉姆交谈”等?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-09
  • 2020-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多