使用类方法进行封装?

时间:2014-02-13 18:40:52

标签: ios objective-c viewdidload class-members

我在一个类中创建了一些uiimage视图类型的@properties,然后在我的rootviewcontroller中初始化了该类。

questions.h:

@property(nonatomic,strong)UIImageView *img1;
@property(nonatomic,strong)UIImageView *img2;
@property(nonatomic,strong)UIImageView *img3;
@property(nonatomic,strong)UIImageView *img4;

'viewcontroller.m'

-(void)viewdidload{

questions *q1=[[questions alloc]init];
q1.img1 =[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"red.png"]];
[self.view addSubview:q1.img1];


UITapGestureRecognizer *Tap1 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(iTap:)];
[q1.img1 addGestureRecognizer:Tap1];

}


-(void)iTap:(UIGestureRecognizer *)gestureRecognizer {
// do something..
}

我知道用初始化代码填充viewdidload不是一个好主意。 有没有更好的方法来使用类方法来实现这一点?

喜欢:

questions.m:

+(questions * )mymethod{

questions *q1=[[questions alloc]init];
q1.img1 =[[uiimageview alloc]initwithimage [uimage imagenamed@"red.png"]];
[self.view addSubview:q1.img1];


UITapGestureRecognizer *Tap1 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(iTap:)];
[q1.img1 addGestureRecognizer:Tap1];

return q1;
}

然后在viewdidload中调用该方法

viewcontroller.m:

-(void)viewdidload{

[questions mymethod];

}

1 个答案:

答案 0 :(得分:0)

viewDidLoad中创建添加视图没有什么问题。但是,您也可以使用- [UIViewController loadView]