我有一个UIViewController
没有 NIB 文件的。现在我有一个我的定制UIView
。我想让 UIViewController
's view继承自我的自定义UIView
,有可能吗?我知道如果我有 XIB 文件,我可以从那里制作自定义类,但没有 XIB 可以完成吗?
提前致谢
如果您使用的是UIViewController
子类,并且不想使用 nib 文件,请覆盖loadView
子类中的方法:
@implementation MyViewController
- (void)loadView {
self.view = [[MyView alloc] init];
// additional view setup here
}
如果您只是使用泛型UIViewController
(而不是子类),那么您可以只分配给视图控制器的view
属性,如下所示:
vc.view = [[MyView alloc] init];
但我不确定这是否在loadView
. 我还没有看到任何文件说它是允许的或不允许的。
像这样替换视图控制器的视图:
// ViewController.m, in viewDidLoad
self.view = [[MyCustomView alloc] initWithFrame:self.view.bounds];
更传统的替代方法是使用自定义子视图填充默认视图,如下所示:
MyCustomView *myCustomView = [[MyCustomView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:myCustomView];
我认为您需要以编程方式加载自定义视图,因为您需要覆盖loadView
视图控制器的方法。
-(void)loadView
{
[super loadView];
CustomView *view = [[CustomView alloc]initWithFrame:self.view.bouds];
[self.view addSubview:view];
}
.h
在您的文件中替换它
@interface ViewController : UIViewController
和
@interface ViewController : Customized View Controller