如何从另一个由IBAction方法组成的类方法中调用方法

时间:2011-06-01 12:32:38

标签: iphone objective-c xcode

实际上我正在iPhone中测试一个示例应用程序...在用户界面中,如果我按下一个按钮“hello”消息应该显示在文本字段上...这样一种方式,当按下按钮时它应该调用一个方法存在于另一个类,即来自class2,并在UI上显示一条消息 所以请帮助我....下面的代码如下 我有两个课说class1和class2 ...... 在class1我打电话

class1.h

@interface class1 : UIViewController {

      IBOutlet UILabel *statusText;    


}

@property (nonatomic,retain)UILabel *statusText;

- (void)buttonpressed:(id)sender;

@end

class1.m

@implemenation class1

-(IBAction)sayhello:(id)sender

{
class1ViewController *class = [[class1ViewController alloc]init];

    [class hello];
}

class2.h

@interface class2 : UIViewController {

    UILabel *statusText;
}

@property(nonatomic,retain)UILabel *statusText;


-(void)sayhello:(id)sender;


@end

class2.m

@implementation class2

-(void)sayhello:(id)sender;
{

    NSString *newtext = [[NSString alloc] initWithFormat:@"hello"];

    statusText.text = newtext;

    [newtext release];
 }   

请建议我应该在代码中做出哪些更改,以便当我按下按钮时,它应该通过调用另一个类中的方法显示消息“HELLO”....我已经使用了两个类...我使用了IBAction方法... 我想用另一个类调用一个方法。

提前多多感谢...

4 个答案:

答案 0 :(得分:2)

而不是[class hello],请使用[class sayhello:nil]

一些注意事项:类的名称应以大写字母开头,例如: Class1 Class2 。另外,buttonpressed:传递sender,但您没有使用它。删除:(id)sender时也可以。当您设置text的{​​{1}}时,首先会创建一个新字符串。这样做:statusText;

答案 1 :(得分:2)

嗨,你知道写这个吗

class1ViewController *class = [[class1ViewController alloc]init];

我认为应该是: -

-(IBAction)sayhello:(id)sender

{
class2 *class = [[class2 alloc]init];
   NSString *string= [class sayhello];
    [class release];
label.text=string;
}

别忘了在class1中导入class2

在class2中

 简单地写一下: -

-(NSString)sayhello
{
    return @"hello";

 }  

答案 2 :(得分:1)

希望这有帮助

class2 * _class2Object = [[class2 alloc]init];
[_class2Object sayHello];

并且不要忘记在class1中导入class2,否则app可能会崩溃,因为你想在class1中调用class2的方法,所以在class1中导入class2.h头并添加上面的代码。

答案 3 :(得分:0)

理论上,因为你正在调用一个对象方法(我想你知道对象方法和类方法之间有什么区别),所以你应该分配并启动包含你想要调用的方法的类的对象(这里是class2)。

我建议您在class1的视图中显示class2生成的字符串:

所以在class1:

-(IBAction)sayHello
{
class2* c2 = [[class2 alloc] init];
statusText.text = [c2 sayhello];
[c2 release];
}
第2课

-(NSString*)sayhello
{
return @"a string";
}