不同的 Unwind Segue 取决于来源
Posted
技术标签:
【中文标题】不同的 Unwind Segue 取决于来源【英文标题】:Different Unwind Segue depending on source 【发布时间】:2015-12-10 06:16:57 【问题描述】:我在 UINavigationController
和一个“详细信息”UIViewController
中嵌入了一个“大师”UITableViewController
。
在主导航栏上,我有一个“添加”按钮,它与导航栏上有一个保存和取消按钮的详细视图相连接。
表格单元格也转到相同的详细信息视图,并在prepareForSegue
方法中传递数据。
详细视图中保存按钮的展开转场方法需要:
-
如果添加按钮用于显示详细信息视图,则向主表添加新行或
如果所选行用于显示详细信息视图,请修改该行的数据
我想不通的是如何区分 unwind 方法中的两个来源...
也许我的方法不对,但我们将不胜感激!
【问题讨论】:
【参考方案1】:您可以向“Detail”视图控制器添加一个“source”参数,并在您对其进行 segue 时为其指定一个值。这可以在 prepareForSegue 方法中完成:
DetailViewController* destinationController = (DetailViewController *)segue.destinationViewController;
destinationController.source = value
然后你可以根据来源的价值采取行动。这可能不是最优雅的方式,但应该可以。
---编辑:---
如果您的“详细”视图控制器以模态方式呈现,您也可以尝试使用 [self presentingViewController]。这应该为您提供呈现它的视图控制器,您可以尝试使用 isKindOfClass 进行区分吗?
【讨论】:
是的,我正在考虑这个问题,但这似乎是一件很常见的事情,会有更好的解决方案...... 我已经对答案进行了编辑,但替代方法只能用于模态视图控制器。以上是关于不同的 Unwind Segue 取决于来源的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationController 的 Unwind Segue