我有一个标签栏作为根视图控制器,每个标签都是一个以详细视图控制器作为根的导航控制器。制作标签栏控制器中几乎相似标签的最好方法
我需要几个选项卡具有几乎相同的逻辑,但为属性分开值。我认为最好的方法是在init方法中使用相同的vc和set属性。例如:
[[MyViewController alloc] initWithStyle:MyCustomStyle]
但我看不到在哪里调用此方法。
我有一个标签栏作为根视图控制器,每个标签都是一个以详细视图控制器作为根的导航控制器。制作标签栏控制器中几乎相似标签的最好方法
我需要几个选项卡具有几乎相同的逻辑,但为属性分开值。我认为最好的方法是在init方法中使用相同的vc和set属性。例如:
[[MyViewController alloc] initWithStyle:MyCustomStyle]
但我看不到在哪里调用此方法。
我假设你使用笔尖或故事板创建你的UI。如果是这样,是的,不支持UIViewController
或子类的自定义初始化 - 将为您指定指定的初始化程序。
可能的解决方法:
创建UITabBarController
编程方式:这种方式,您可以实例化的风险投资,无论如何你喜欢
已经MyViewController
找出哪些情况下它实际上是在实例并把自己定相应地 - 例如,通过查看其包含的视图控制器并查找它(例如,查找它的标签索引)
第一个选项是更好的一个,因为它更清洁,并且不涉及MyViewController
必须知道其在UITabBarController
或类似(这是非常hacky)中的潜在位置。
如果您依靠NIB来实例化和初始化您的导航控制器,您可以使用几种技巧来告诉每个人是什么。
Simpliest之一是在NIB TSE标签,并在initWithNibName处理不同的价值观:捆绑:,的initWithCoder:,或viewDidLoad中
更好的方法是创建基类并从基础派生每个根导航控制器,引用NIB中的每个类。如果控制器之间的差异开始增长,则更容易支持。 – ImplexOne
是的,我是从一个故事板制作。奇怪的是,这样的小事不受支持。非常感谢您的回答 – user801255