2012-11-02 27 views
0

我有一个标签栏作为根视图控制器,每个标签都是一个以详细视图控制器作为根的导航控制器。制作标签栏控制器中几乎相似标签的最好方法

我需要几个选项卡具有几乎相同的逻辑,但为属性分开值。我认为最好的方法是在init方法中使用相同的vc和set属性。例如:

[[MyViewController alloc] initWithStyle:MyCustomStyle] 

但我看不到在哪里调用此方法。

回答

1

我假设你使用笔尖或故事板创建你的UI。如果是这样,是的,不支持UIViewController或子类的自定义初始化 - 将为您指定指定的初始化程序。

可能的解决方法:

  • 创建UITabBarController编程方式:这种方式,您可以实例化的风险投资,无论如何你喜欢

  • 已经MyViewController找出哪些情况下它实际上是在实例并把自己定相应地 - 例如,通过查看其包含的视图控制器并查找它(例如,查找它的标签索引)

第一个选项是更好的一个,因为它更清洁,并且不涉及MyViewController必须知道其在UITabBarController或类似(这是非常hacky)中的潜在位置。

+0

是的,我是从一个故事板制作。奇怪的是,这样的小事不受支持。非常感谢您的回答 – user801255

0

如果您依靠NIB来实例化和初始化您的导航控制器,您可以使用几种技巧来告诉每个人是什么。

Simpliest之一是在NIB TSE标签,并在initWithNibName处理不同的价值观:捆绑:的initWithCoder:,或viewDidLoad中

+0

更好的方法是创建基类并从基础派生每个根导航控制器,引用NIB中的每个类。如果控制器之间的差异开始增长,则更容易支持。 – ImplexOne