我有一个UIViewController
没有NIB文件。现在我有一个我的自定义UIView
。我想让UIViewController
的视图继承自我的自定义UIView
,是否可能?我知道如果我有XIB文件,那么我可以从那里制作自定义类,但没有XIB可以做到吗?
先谢谢
答案 0 :(得分:2)
如果您使用UIViewController
子类,并且不想使用nib文件,则覆盖子类中的loadView
方法:
@implementation MyViewController
- (void)loadView {
self.view = [[MyView alloc] init];
// additional view setup here
}
如果您只是使用通用UIViewController
(不是子类),那么您可以只分配给视图控制器的view
属性,如下所示:
vc.view = [[MyView alloc] init];
但我不确定这是否在loadView
之外正常工作。我没有看到任何说明它是否被允许的文档。
答案 1 :(得分:1)
替换视图控制器的视图如下:
// ViewController.m, in viewDidLoad
self.view = [[MyCustomView alloc] initWithFrame:self.view.bounds];
更常规的替代方法是使用自定义子视图填充默认视图,如下所示:
MyCustomView *myCustomView = [[MyCustomView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:myCustomView];
答案 2 :(得分:0)
将此替换为.h
文件
@interface ViewController : UIViewController
与
@interface ViewController : Customized View Controller
答案 3 :(得分:0)
我认为您需要以编程方式加载自定义视图,因为您需要覆盖视图控制器的loadView
方法。
-(void)loadView
{
[super loadView];
CustomView *view = [[CustomView alloc]initWithFrame:self.view.bouds];
[self.view addSubview:view];
}