首页 > 解决方案 > 发布内容后的最佳转场

问题描述

我是 swift 新手,我很好奇从一种观点转移到另一种观点的最佳方式。我有一个主视图,它是选项卡栏上的选项卡并嵌入导航控制器中。从这个主视图中,我获取用户内容,然后在主视图上显示该内容。目前,我正在从主视图切换到收集内容的视图,然后再切换回主视图。唯一的问题是,当我这样做时,我得到了一个后退按钮,即使我隐藏了后退按钮,我只是继续将屏幕放在选项卡的顶部。从收集内容的视图转换回主视图的最佳方式是什么?

标签: iosswift

解决方案


基本上有两种显示和隐藏视图控制器的一般方式:

  1. 推入导航控制器(使用“显示”segue 或代码self.navigationController?.pushViewController(viewController, animated: true)。在这种情况下,返回上一个屏幕的正常方法是使用“返回”导航按钮。如果您需要手动操作,您可以self.navigationController?.popViewController(animated: true)在视图中使用控制器或使用 unwind segue(虽然我很少看到它使用)。如果您需要返回导航堆栈中的第一个屏幕,您可以使用self.navigationController?.popToRootViewController(animated: false).
  2. 模态演示(使用 'Present Modally' segue 或self.present(viewController, animated: false)。在这种情况下,为了返回上一个视图,您必须在屏幕上添加一些关闭/取消按钮并将其与调用self.dismiss(animated: true, completion: nil).

无论如何,我建议您熟悉有关此主题的Apple 指南。

如果你需要在你的控制器之间传递一些数据,有多种方法可以做到这一点,比如直接将它分配给 in 中的属性prepare(for segue: UIStoryboardSegue, sender: Any?),实现委托/回调交互,实现观察者,共享回存储等。


推荐阅读