【问题标题】:Elegant way to connect multiple views to one segue将多个视图连接到一个 segue 的优雅方式
【发布时间】:2014-10-26 07:35:51
【问题描述】:

在我的故事板中,我有一个视图控制器(称其为“源”),它推送到另一个视图控制器(假设为“目的地”)。

可以从以下三个位置之一触发推送:

  1. 表格视图标题内的 UIButton
  2. 其中一个原型单元格(在选定的单元格中...)
  3. 集合视图的一个单元格位于不同类型的原型单元格内

我目前拥有的是我 ctrl+ 将这些视图中的每一个拖到目标 VC 的 segues,并为所有这些视图提供了相同的标识符(因为它们都推送相同的 VC...) 这工作完美无缺,除了每次我按 cmd+R 时都会出现这个烦人的小东西:

好吧,我试图成为一个好公民,并将我所有的竞争都锚定在源 VC 中的 IBAction 上,我称之为 performSegueWithIdentifier:,但我无法对单元格和选举视图中的单元格执行此操作。 .. 仅适用于我的标题视图中的按钮...

我真的不想在我的集合视图自定义类中有一个调用源视图控制器的操作方法的代码以及didSelectCell... 中的更多代码来检查它是否是正确的单元格原型,而不是调用操作方法....这一切感觉比拥有 3 个具有相同 id 的 segues 更糟糕——(在我看来)这对我来说真的很有意义——而且效果也很完美......

只是说清楚 - 这是它目前的样子:

有什么想法吗?

【问题讨论】:

    标签: ios objective-c storyboard segue


    【解决方案1】:

    你可以坚持你的三个 segue 模式,但给每个一个单独但相关的标识符,如 PushDetailButtonPushDetailCell 等等。

    prepareForSegue 中,您可以使用hasPrefix:@"PushDetail" 而不是isEqual 来匹配标识符以字符串开头的任何segue,而不是匹配整个字符串。

    【讨论】:

    • 我仍然认为苹果应该允许将多个视图连接到一个 segue,但你的想法是我见过的最优雅的解决方法......所以感谢你的创造性解决方案......(:
    猜你喜欢
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    相关资源
    最近更新 更多