不同的Unwind Segue取决于来源

时间:2015-12-10 06:16:58

标签: ios swift uitableview uinavigationcontroller segue

我在UITableViewController和'详情'UINavigationController中嵌入了'主'UIViewController

在主导航栏上,我有一个“添加”按钮,该按钮位于详细信息视图中,该视图具有“保存”和“保存”功能。导航栏上的取消按钮。

表格单元格也会转到相同的详细信息视图,并以prepareForSegue方法传递数据。

详细信息视图中保存按钮的展开segue方法需要:

  1. 如果使用添加按钮显示详细信息视图或
  2. ,则向主表添加新行
  3. 修改所选行的数据(如果用于显示详细信息视图
  4. 我无法弄清楚如何区分展开方法中的两个来源......

    也许我会以错误的方式解决这个问题,但任何帮助都会受到赞赏!

1 个答案:

答案 0 :(得分:0)

您可以将“source”参数添加到“Detail”视图控制器中,并在转换为它时为其赋值。这可以在prepareForSegue方法中完成:

DetailViewController* destinationController = (DetailViewController *)segue.destinationViewController;
destinationController.source = value

然后您可以根据来源的值采取行动。这可能不是最优雅的方式,但它应该有效。

---编辑:---

如果你的'Detail'视图控制器是以模态方式呈现的,你也可以尝试使用[self presentsViewController]。这应该给你提供它的视图控制器,你可以尝试区分使用isKindOfClass吗?