【问题标题】:good ios design with mutiple controllers具有多个控制器的良好 ios 设计
【发布时间】:2017-10-18 00:09:15
【问题描述】:

我打算构建一个相当复杂的应用程序,我想知道如何正确设计它。

我有一个根控制器,它负责调度多个控制器(VC1 到 VC5)的创建,每个控制器都与自己的故事板相关联。

因此,这些故事板中的每一个都非常复杂,包含多个级别的控制器,通常由导航控制器驱动。

我的问题如下:假设用户正在使用 VC1 故事板中最深的控制器。在这个控制器中有一个按钮。当用户单击它时,我希望 VC1 和链接到它的所有控制器都关闭,并将一些数据发送到根控制器。

我的想法也是能够在应用程序的其他地方重用 VC1 到 VC5,但来自与根控制器不同的控制器。

实现这一目标的最佳设计是什么? 谢谢

【问题讨论】:

  • 我认为这取决于应用程序的设计和流程。感觉太笼统了。也许你可以使用 UITabBarController?

标签: ios uiviewcontroller swift3 storyboard


【解决方案1】:

首先,没有最好的设计。这个世界上可能有更好的设计。

你的第一个任务:

您可以使用带有 5 个标签的标签栏控制器。 每个选项卡都有用于保存复杂设计的导航控制器。

对于数据传递:

  1. 放松赛格。
  2. 代表。
  3. 通知。

为了您的任务: 用户单击它我希望 VC1 和链接到它的所有控制器都关闭,并将一些数据发送到 rootController。

有很多关于如何连同数据一起返回根视图控制器的教程。其中一个是passing-data-between-view-controllers 我不想详细说明整个过程,但主题是。

众多解决方案之一:

  1. 在移动到该 VC 之前将该数据分配给目标 VC' 变量。对于导航控制器,移动到 rootView 控制器,

    [self.navigationController popToRootViewControllerAnimated:YES];

被使用。希望我给了一些光。 :)

【讨论】:

  • 其实我会用一个菜单来管理不同的。所以 VC1 到 VC5 将从那里实例化。我的问题更多地与数据传递和通知有关。我认为通知根控制器它可以关闭 VC1 可能是个好主意。
  • 我已经提到过数据传递,并且我已经优先考虑了它。但是,如果您发现我的回答有用,那我很高兴。 :) 美好的一天。
猜你喜欢
  • 1970-01-01
  • 2020-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-04
  • 2015-04-26
  • 2023-03-16
  • 2016-06-21
相关资源
最近更新 更多