具有 UIView 继承类的 UIViewController,以编程方式

Posted

技术标签:

【中文标题】具有 UIView 继承类的 UIViewController,以编程方式【英文标题】:UIViewController with UIView-inherited class, programmatically 【发布时间】:2011-03-07 17:13:44 【问题描述】:

我正在使用一个库,它是一个继承自 UIView 的类。如何以编程方式创建使用此类的 UIViewController,而不是普通的 UIView?

ViewController 的 .h 文件如下所示:

#import <UIKit/UIKit.h>
#import "PLView.h"

@interface HelloPanoramaViewController : UIViewController 
IBOutlet PLView * plView;


@property (nonatomic, retain) IBOutlet PLView *plView;

@end

.m文件如下:

#import "HelloPanoramaViewController.h"

@implementation HelloPanoramaViewController

@synthesize plView;

- (void)viewDidLoad 

    [super viewDidLoad];
    // Do stuff here...


- (void)dealloc 

    [plView release];
    [super dealloc];


@end

然后我应该使用笔尖让“plView 变量指向视图”。 但是如果不使用 Interface Builder,我将如何以编程方式执行此操作?我怎么能让这个 UIViewController 创建一个 PLView,而不是 UIView?

【问题讨论】:

仅供参考,如果您不知道,您实际上也可以执行此 IB,方法是将 nib 中主 UIView 的“类”属性更改为所需的类名。跨度> 【参考方案1】:

你的 UIViewController 看起来像

#import "HelloPanoramaViewController.h"

@implementation HelloPanoramaViewController

- (void)loadView 

    self.view = [PLView plview]//or whatever it takes to create the plview.


- (void)viewDidLoad

    //create more objects


- (void)viewDidUnload

    //release unwanted objects that were created viewDidLoad


-(void) dealloc

    // release all 
    [super dealloc];

@end

更多信息...here

【讨论】:

【参考方案2】:

在您创建 viewController 的地方,还创建自定义视图的实例,然后将该视图设置为控制器的视图:

HelloPanoramaViewController *controller = [[HelloPanoramaViewController alloc] init];
PLView *view = [[PLView alloc] init];
controller.view = view;

【讨论】:

以上是关于具有 UIView 继承类的 UIViewController,以编程方式的主要内容,如果未能解决你的问题,请参考以下文章

IOS UIView的跳转

具有相同名称的类的构造函数继承

当在其层次结构中具有菱形继承的类的多重继承时,函数的模糊继承

具有抽象中间类的虚拟继承

Hibernate继承和具有相同类的多个表

如何防止具有公共派生类的抽象类在其他程序集中被继承?