3

我必须Class method从一个类调用一个类到另一个类,实际上进入类方法我必须通过UIImage. 所以我创建了一个NSObject并在Viewcontroller按钮中调用它

如何调用UIImageView以及在哪里..请检查我出错的代码..

我需要对调用图像的方法进行哪些更改

Zaction.h

@interface ZAction : NSObject

@property (retain) NSString *title;
@property (assign) id <NSObject> target;
@property (assign) SEL action;
@property (retain) id <NSObject> object;
@property(retain) UIImageView *image;

+ (ZAction *)actionWithTitle:(NSString *)aTitle target:(id)aTarget action:(SEL)aAction object:(id)aObject image:(UIImageView *)Aimage;;

ZAction.m

@implementation ZAction

@synthesize title;
@synthesize target;
@synthesize action;
@synthesize object,image;

 + (ZAction *)actionWithTitle:(NSString *)aTitle target:(id)aTarget action:(SEL)aAction object:(id)aObject image:(UIImageView *)Aimage;
{
    ZAction *actionObject = [[[ZAction alloc] init] autorelease];
    actionObject.title = aTitle;
    actionObject.target = aTarget;
    actionObject.action = aAction;
    actionObject.object = aObject;
    actionObject.image=Aimage;
    return actionObject;
}

视图控制器.m

 #import "Zaction.h"
- (IBAction)test4Action:(id)sender
{
    UIImageView *image1=[[UIImageView alloc]initWithFrame:CGRectZero];
    ZAction *destroy = [ZAction actionWithTitle:@"Clear" target:self action:@selector(colorAction:) object:[UIColor clearColor] image:image1];
    ZAction *sec = [ZAction actionWithTitle:@"Unclear" target:self action:@selector(colorAction:) object:[UIColor clearColor] image:image1];
    image1.image=[UIImage imageNamed:@"icon2.png"];
    [self.view addSubview:image1];


   ZActionSheet *sheet = [[[ZActionSheet alloc] initWithTitle:@"Title" cancelAction:nil destructiveAction:destroy
                otherActions:[NSArray arrayWithObjects:option1,  nil]] autorelease];
    sheet.identifier = @"test4";
    [sheet showFromBarButtonItem:sender animated:YES];
}
4

1 回答 1

1

您的代码有一些严重的问题:

  • 您的 UIImageView image1 使用 CGRectZero 框架初始化 - 可能因为框架为 (0,0,0,0) 而未显示?Tr 给它一个真实的大小,例如图像的大小。

  • 接下来,您的 ZAction 对象 sec 和 destroy 将在 test4Action 方法结束时消失,因为它们是自动释放的,不会保留在任何地方。

  • 您的代码中还有一些不必要的分号 - 特别是我要摆脱的 actionWithTitle 方法实现背后的分号,您可能会因分号错误而出现一些令人讨厌的错误(例如在 if() 语句之后......)。

  • 还请处理您的编码风格(特别是变量的命名 - c 语言关键字没有好的属性名称(您的操作类中的“对象”),Aimage 应该是 aImageView)

于 2013-02-19T21:24:02.057 回答