如何使UIViewController视图继承自另一个UIView?

时间:2013-06-03 05:07:50

标签: iphone ios

我有一个UIViewController没有NIB文件。现在我有一个我的自定义UIView。我想让UIViewController的视图继承自我的自定义UIView,是否可能?我知道如果我有XIB文件,那么我可以从那里制作自定义类,但没有XIB可以做到吗? enter image description here

先谢谢

4 个答案:

答案 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];
 }