Ios 不同的展开顺序取决于源

Ios 不同的展开顺序取决于源,ios,swift,uitableview,uinavigationcontroller,segue,Ios,Swift,Uitableview,Uinavigationcontroller,Segue,我在UINavigationController中嵌入了一个“主”UITableViewController,还有一个“细节”UIViewController 在主导航栏上,我有一个“添加”按钮,该按钮与导航栏上的“保存和取消”按钮的详细视图相连接 表格单元格也会切换到相同的详细视图,并在prepareforsgue方法中传递数据 “详细信息”视图中“保存”按钮的“展开顺序”方法需要: 如果“添加”按钮用于显示详细视图或视图,则向主表添加新行 修改选定行的数据(如果该行用于显示详图视图) 我搞不

我在
UINavigationController
中嵌入了一个“主”UITableViewController,还有一个“细节”UIViewController

在主导航栏上,我有一个“添加”按钮,该按钮与导航栏上的“保存和取消”按钮的详细视图相连接

表格单元格也会切换到相同的详细视图,并在
prepareforsgue
方法中传递数据

“详细信息”视图中“保存”按钮的“展开顺序”方法需要:

  • 如果“添加”按钮用于显示详细视图或视图,则向主表添加新行
  • 修改选定行的数据(如果该行用于显示详图视图)
  • 我搞不懂的是如何在展开方法中区分这两个来源


    也许我走错了方向,但任何帮助都将不胜感激

    您可以向“细节”视图控制器添加“源”参数,并在切换到该参数时为其指定一个值。这可以通过prepareForSegue方法完成:

    DetailViewController* destinationController = (DetailViewController *)segue.destinationViewController;
    destinationController.source = value
    
    然后,您可以根据源的值采取操作。这可能不是最优雅的方式,但它应该会起作用

    ---编辑:---


    如果您的“细节”视图控制器以模式显示,您也可以尝试使用[self-presentingViewController]。这应该会给你呈现它的视图控制器,你可以尝试使用isKindOfClass来区分吗?

    是的,我在想,但这似乎是一件很常见的事情,会有更好的解决方案……我对答案进行了编辑,但替代方法只能用于模态视图控制器。