我有一个使用MVP-C
设计模式的应用程序。
我的rootViewController是一个UINavigationController
,我的主流程呈现了一个UITabBarController
,其中有4个标签。
标签栏控制器具有UITabBarControllerDelegate
,并且使用tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController)
可以在HomeFlowCoordinator
上调用委托方法,该方法允许我在导航栏上正确设置标题标签。
我这样做的前提是协调员拥有导航栏,因此任何更改都应由协调员处理,而不是由视图控制器进行。
我的问题是,我现在需要在某些选项卡上添加UIBarButtonItem
。我仍然可以在协调器中执行此操作,但是我开始怀疑这是否是正确的位置,因为我需要为按钮分配一个操作选择器,这意味着逻辑也将存在于协调器中,可能意味着任何服务/提供者呼叫将驻留在协调器中。
感觉不正确。通过UINavigationController
将我的DI
传递到我的演示者或视图控制器中,并让每个选项卡在其中修改导航标题和工具栏按钮操作,是否正确?
如果是这样,他们还可以呈现视图,感觉协调员几乎变得多余了?