改变我有处理三种NavigationViewControllers一个SideMenuController(https://github.com/dogo/AKSideMenu):如何在UINavigationBar的标题从另一个NavigationController
- 之一的中心名为ContentVC
- 两个sideMenus
- leftMenuVC从而改变ContentVC
- rightFilterVC用于过滤内容。
当用户按下rightFilterVC项目, 的ContentVC内容应该是 “刷新” - 不是在控制器本身。(NavigationBar中的标题,以及它自己的内容)。 ContentVC类应该保持不变。
我可以从rightFilterMenu重新实例化ContentVC,但是然后rightFilterMenu负责实例化ContentVC。这应该是leftMenuVC的一部分。只有左菜单才能更改ContentVC。 rightFilterVC通常用于更改Filter类中的静态变量。 Filter类可以从每个ViewController访问,并保存用于api调用的参数。
// Typical rightFilterMenu change looks like this:
Filter.name = self.selectedName
// can do that in rightFilterVC
// but should only be part of leftMenuVC
self.sideMenu.contentViewController = self.storyboard!.instantiateViewController(withIdentifier: "ContentVC1")
// something like this does not work either
self.sideMenu.contentViewController.customNavBar.setTitle(self.filter.name)
self.sideMenu.contentViewController.setNeedsLayout()
self.sideMenu.contentViewController.setNeedsDisplay()
我应该在每个ContentController中实现一个“Filter”-observer吗?所以他们会更新自己,如果rightMenuVC改变了?还是有另一种方法?
我是否必须对“rightFilterVC”做第二个委托? rightFilterVC不知道哪个控制器在中心!我必须告诉他。我真正的“setNavBarTitle”-func有两个参数,一个用于“ControllerNameTitle”,一个用于“FilterName(Subline)”。据我了解,你的例子(谢谢!)期望双方都设置ContentVC和标题。我也有'SideMenuController'(willHide,willShow,didHide,willHide)的委托。也许我可以使用它们而不是创建你的?我也可能需要创建一个委托来传递ControllerName给它。 – Jan