首页 > 解决方案 > 谁负责使用协调器设计模式调用服务

问题描述

我有一个使用MVP-C设计模式的应用程序。

我的 rootViewController 是一个UINavigationController,我的主流程呈现一个UITabBarController有 4 个选项卡的。

标签栏控制器有一个UITabBarControllerDelegate并且使用tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController)我可以调用我的委托方法,HomeFlowCoordinator它允许我在导航栏上正确设置标签的标题。

我这样做的假设是协调器拥有导航栏,因此任何更改都应由协调器处理,而不是由视图控制器进行。

我的问题是我现在需要UIBarButtonItem在某些选项卡上添加一个。我仍然可以在协调器中执行此操作,但是我开始怀疑这是否是正确的位置,因为我需要为按钮分配一个动作选择器,这意味着逻辑也将存在于协调器中,可能意味着任何服务/提供者调用将存在于协调器中。

这感觉不对。UINavigationController将我的通过传递DI到我的演示者或视图控制器并让每个选项卡修改导航标题和栏按钮操作是否正确?

如果这是真的,他们也可以提出意见,这感觉协调员几乎变得多余了?

标签: iosswiftmvpcoordinator-pattern

解决方案


推荐阅读