【发布时间】:2016-04-04 12:45:59
【问题描述】:
我有一个包含许多 NSView 子类的文档窗口,它们在使用选项卡控件之间切换。每个子类以及窗口的 ViewController 都支持通过绑定到 First Responder 的菜单项访问的不同用户操作。
我想从这些视图之一 中执行一个segue 以响应菜单项。但是,NSView 不支持performSegueWithIdentifier,它似乎只是 NSViewController 的一部分。
有人可以提出解决方法吗?我已经看到将 VC 传递到视图中的建议,但我不清楚如何做到这一点。或者也许有更好的方法?
【问题讨论】:
-
由于
@IBActions 已连接到 First Responder,您不能在视图控制器中捕获操作并执行依赖于活动视图的操作。 -
是的,但该操作取决于视图私有的信息 - 特别是
NSTableView中的选择。我可以揭露它,但它似乎是错误的。 -
通常您可以从 controller 中控制工作流,因为您可以访问视图。另一种方法是使用协议/委托模式将数据发送回控制器。
-
如果您想了解为什么在这种情况下不这样做,请尝试在选项卡控制器中构建一个包含十几个视图的故事板布局,每个视图都有一个自定义 VC 和视图。正如我所做的那样,您会得出结论,弯曲对象模型的任何潜在痛苦都远比尝试编辑产生的混乱要便宜。
标签: swift segue nsviewcontroller