使用插座子类化主视图控制器
Posted
技术标签:
【中文标题】使用插座子类化主视图控制器【英文标题】:Subclassing a main view controller with outlets 【发布时间】:2011-12-18 21:26:34 【问题描述】:我想创建一个主视图控制器来处理自定义导航栏及其行为。
然后,我想继承这个新类以使用它的行为并为我的每个 ViewController 链接一个“contentView”IBOutlet。
这是我的 BaseViewController.xib:
TestViewController.xib:为其父级链接“contentView”出口
TestViewController.h:继承自 BaseViewController
#import "BaseViewController.h"
@interface TestViewController : BaseViewController
@end
TestViewController.m:应该使用 TestViewController.xib 中的 outlet
- (id)init
self = [super init];
if (self)
[[NSBundle mainBundle] loadNibNamed:@"TestViewController"
owner:self
options:nil];
return self;
显然,我希望 MainViewController 中的绿色条带有白色视图和 TestViewController 中的标签,但它实际上不起作用,结果如下:
如果在 TestViewController.xib 中,我将“视图”出口与视图链接,它实际上覆盖了这个屏幕,我没有来自 MainViewController 的绿色条,所以我猜我的导入工作正常,但我不能不明白为什么它不能与 contentView 一起工作。
有什么想法吗?
干杯!
西里尔
【问题讨论】:
【参考方案1】:您必须决定哪个控制器应该控制包含内容的视图。
或者你有基础视图控制器控制它 - 在这种情况下你不需要子类化它。只需添加UIView
的子类作为子视图并在那里执行所有逻辑。视图也可以有自己的 nib 文件。
或者你子类化你的基本视图控制器 - 但是你不能有一个单独的视图控制器笔尖。您可以在子类(也是视图控制器)中执行所有视图控制器逻辑(数据源等),但它将使用基本视图控制器的 nib。
【讨论】:
以上是关于使用插座子类化主视图控制器的主要内容,如果未能解决你的问题,请参考以下文章