如何在没有子类化的情况下获得NavigationController功能?

时间:2010-11-06 07:24:16

标签: iphone objective-c uinavigationcontroller uitabbarcontroller

所以我的应用程序的核心是标签栏。在3个选项卡中的每个选项卡中都有一个UINavigationController子类。每个表中都有一个不同类型的表,当点击一行时,会显示一个细节等。

我目前有一个3个独立的UINavigationController子类,每个选项卡一个。然后,当按下新选项卡时,将按下表格的控制器。

我刚刚读到你不应该继承UINavigationController的子类。我没有覆盖任何UINavigation Controller的功能,但我在viewDidLoad中覆盖了它的UIViewController功能。老实说这就是它。这看起来很傻,但我不清楚如何在没有按照我的方式进行子类化的情况下获得导航控制器功能。

那么我应该如何拥有一个我不是子类的UINavigationController?在选择选项卡时,您应该采取什么方法来切换视图?

我几乎是个菜鸟。如果我只覆盖viewdidload,那么Apple会拒绝我的应用程序来解压UINavigationController吗?

我听说人们说不要继承UINavigationController,而是“以模态方式呈现它”。我稍微使用了模态演示,但老实说,我不太了解它的应用方式......

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

你在viewDidLoad做什么?怎么在根视图控制器中,而不是在导航控制器中?

P.S。我认为Apple不会拒绝你的应用程序来继承UINavigationController。

答案 1 :(得分:0)

您应该使用类别来添加类似的额外功能。它看起来像这样:

@implementation UINavigationController (CustomViewDidLoad)

- (void)viewDidLoad
{
    //code goes here
}

@end

您可以将其添加到初始化navigationcontroller的文件的底部

有关类别的更多信息(位于底部):http://cocoadevcentral.com/d/learn_objectivec/