【发布时间】:2014-03-12 20:03:57
【问题描述】:
我在一个类中创建了一些 uiimage 视图类型的@properties,然后在我的 rootviewcontroller 中初始化了该类。
问题.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 不是一个好主意。 有没有更好的方法来使用类方法来实现这一点?
喜欢:
问题.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];
}
【问题讨论】:
-
您应该首先修复代码中最明显的错误。
-
是的,我知道...请简短回答我的问题
-
initWithTarget:self在类方法中不起作用。 -
我之前尝试过用“视图控制器”实例代替 self ...但它没用..
标签: ios objective-c viewdidload class-members