自定义UINavigationController实现

时间:2011-10-19 13:22:17

标签: objective-c uinavigationcontroller uitabbarcontroller implementation


我的应用程序中有一个TabBarController,其中有一些NavigationControllers。我已经在界面构建器中完成了所有这些东西 现在我想实现我的自定义navigationcontroller,所以我创建了一个类:

#import <UIKit/UIKit.h>

@interface DetailNavigationController : UINavigationController

@end


@implementation DetailNavigationController

- (id)initWithRootViewController:(UIViewController *)rootViewController
{
    self = [super initWithRootViewController:rootViewController];
    if (self) {
        NSLog(@"I work!");
    }

    return self;
}

- (void) dealloc {
    [super dealloc];
}

@end

在Interface builder中,我将此类作为Custom Class添加到我想要的导航控制器中。现在,当我启动应用程序并选择带有此导航控制器的选项卡时,它可以工作,但不会调用initWithRootController。我想它完全忽略了类并且作为默认导航控制器运行 我是否需要在界面构建器中指定更多内容,或者我是否需要在tabbar委托中的某处以编程方式指定此控制器?
感谢。

1 个答案:

答案 0 :(得分:1)

如果您要在界面构建器中创建导航控制器,则需要覆盖initWithCoder:,而不是initWithRootViewController:。 xib包含对象的实例化版本,并且已经设置了根视图控制器。