使用出口对主视图控制器进行子类化

时间:2011-12-18 21:26:35

标签: iphone ios uiviewcontroller xib subclassing

我想创建一个主视图控制器,以便处理自定义导航栏及其行为。

然后,我想继承这个新类以使用它的行为,并为每个ViewControllers链接一个“contentView”IBOutlet。

这是我的BaseViewController.xib: enter image description here

TestViewController.xib:为其父级链接“contentView”插座 enter image description here

TestViewController.h:从BaseViewController继承

#import "BaseViewController.h"

@interface TestViewController : BaseViewController

@end

TestViewController.m:应该使用来自TestViewController.xib

的出口
- (id)init
{
    self = [super init];
    if (self) {
        [[NSBundle mainBundle] loadNibNamed:@"TestViewController"
                                      owner:self
                                    options:nil];
    }

    return self;
}

显然,我想从MainViewController获得带有白色视图和TestViewController标签的绿色条,但它实际上不起作用,结果如下: enter image description here

如果在TestViewController.xib中,我将“视图”插座与视图链接,它实际上覆盖了这个屏幕,我没有MainViewController的绿色条,所以我猜我的导入工作正常,但我可以'理解为什么它不能使用contentView。

有什么想法吗?

干杯!

西里尔

1 个答案:

答案 0 :(得分:0)

您必须决定哪个控制器应该使用内容控制视图。

  • 你有基本视图控制器控制它 - 在这种情况下你不需要子类化它。只需添加UIView的子类作为子视图,并在那里完成所有逻辑。视图也可以有自己的nib文件。
  • 您是基础视图控制器的子类 - 但是您不能拥有单独的视图控制器笔尖。您可以在子类(也是视图控制器)中执行所有视图控制器逻辑(数据源等),但它将使用基本视图控制器的nib。