我的应用程序中有一个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委托中的某处以编程方式指定此控制器?
感谢。
答案 0 :(得分:1)
如果您要在界面构建器中创建导航控制器,则需要覆盖initWithCoder:
,而不是initWithRootViewController:
。 xib包含对象的实例化版本,并且已经设置了根视图控制器。