2

我有一个UIViewController没有 NIB 文件的。现在我有一个我的定制UIView。我想让 UIViewController's view继承自我的自定义UIView,有可能吗?我知道如果我有 XIB 文件,我可以从那里制作自定义类,但没有 XIB 可以完成吗?在此处输入图像描述

提前致谢

4

4 回答 4

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. 我还没有看到任何文件说它是允许的或不允许的。

于 2013-06-03T05:15:07.013 回答
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];
于 2013-06-03T05:13:05.273 回答
0

我认为您需要以编程方式加载自定义视图,因为您需要覆盖loadView视图控制器的方法。

-(void)loadView
 {
    [super loadView];
    CustomView *view = [[CustomView alloc]initWithFrame:self.view.bouds];
    [self.view addSubview:view];
 }
于 2013-06-03T05:14:48.677 回答
0

.h在您的文件中替换它

@interface ViewController : UIViewController

@interface ViewController : Customized View Controller
于 2013-06-03T05:09:34.373 回答