我使用的是Storyboard,iOS 7 SDK,Xcode 6 Brta。
我有一个UITabBarController。
它有两个故事板关系:
(1)与UINavigationController 1的关系,其中嵌入了View Controller 1.
(2)与UINavigationController 2的关系,其中嵌入了View Controller 2.
每个视图控制器在每个导航栏中都有一组通用的UI元素。例如选项按钮,刷新按钮等
这些按钮在每个View Controller中的作用相同,但依赖于特定的View Controller及其Storyboard设置。
例如:
用户按下View Controller 1中的选项按钮[导航栏],将发生Segue xx1,导致从View Controller 1转换到Options View Controller。
...或
用户按下View Controller 2中的选项按钮[导航栏],将发生Segue xx2,导致从View Controller 2转换到Options View Controller。
(在这种情况下,每个View Controller都会显示相同的选项UI,但会通过不同的Segues。)
显然,这会复制功能,引入复杂性并且不会扩大规模。
我应该如何设计/重构这一点,以便按下出现在2或3或n个视图控制器中的按钮,每个按钮具有相同的行为,但没有重复的代码和故事板纠缠?
这有典型的模式吗?欢呼声。
答案 0 :(得分:0)
一个选项是为ViewController1和ViewController2创建一个超类,在那里实现常见行为的逻辑(例如选项按钮)并指定常用的设计元素,在这种情况下你不会有冗余代码您可以通过再次进行子类化,向标签栏控制器添加更多视图控制器。