我想创建一个主视图 Controller 来处理自定义导航栏及其行为。
然后,我想子类化这个新类以使用它的行为并为我的每个 ViewController 链接一个“contentView”IBOutlet。
这是我的 BaseViewController.xib:
TestViewController.xib:链接其父级的“contentView”导出
TestViewController.h:继承自BaseViewController
#import "BaseViewController.h"
@interface TestViewController : BaseViewController
@end
TestViewController.m:应该使用 TestViewController.xib 中的 socket
- (id)init
{
self = [super init];
if (self) {
[[NSBundle mainBundle] loadNibNamed:@"TestViewController"
owner:self
options:nil];
}
return self;
}
显然,我希望 MainViewController 中的绿色 strip 有白色 View 和 TestViewController 中的标签,但它实际上不起作用,结果如下:
如果在 TestViewController.xib 中,我将“ View ”导出与 View 链接,它实际上覆盖了这个屏幕,并且我没有来自 MainViewController 的绿色条,所以我想我的导入工作正常,但我不能'不明白为什么它不能与 contentView 一起工作。
有什么想法吗?
干杯!
西里尔
最佳答案
您必须决定哪个 Controller 应该控制带有内容的 View 。
- 要么您有基本 View Controller 控制它 - 在这种情况下您不需要子类化它。只需将
UIView
的子类添加为 subview ,然后在其中执行所有逻辑。 View 也可以有自己的 nib 文件。 - 或者您将您的基础 View Controller 子类化 - 但这样您就不能拥有单独的 View Controller nib。您可以在子类(它也是一个 View Controller )中执行所有 View Controller 逻辑(数据源等),但它将使用基础 View Controller 的 Nib 。
关于iphone - 使用 outlets 子类化主视图 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8554942/