当我从一个在另一个类中实现的类调用一个方法时,它只调用一些方法

时间:2012-03-20 12:37:33

标签: objective-c uitextfield

所以,我有两个类,A类和B类。从A类开始,当按下一个按钮时,我有一个B类实例初始化并调用它的方法testMethod。它设置了一个名为UITextField的{​​{1}}的文本,并在此方法中调用text,但只在调用方法时调用NSLog!我不知道我做错了什么,这是我的代码(假设两个类都是NSLog个子类,并且在头文件中定义了一个名为UIViewController的实例:

ClassA.m

b

ClassB.m (是的,-(IBAction)sendData:(id)sender { b = [[ClassB alloc] init]; [b testMethod]; [[self navigationController] pushViewController:b animated:YES]; } 属性化并合成)

UITextField

编辑:我解决了这个问题。我所做的是将一个变量从A类传递给B类,然后从那里设置它的文本字段。

2 个答案:

答案 0 :(得分:0)

B组是否知道用UITextField来设置文字?

如果没有,您可以尝试将对象添加到函数标题中,如。

班级b.h

-(void)testMethod:(UITextField *)text;

班级b.m

-(void) testMethod:(UITextField *)text
{
    [text setText:@"Text"];

    NSLog(@"This is the only thing getting called in this method");
}

班级a.m

 [b testMethod:textfield]; //textfield is a object of UITextField

答案 1 :(得分:0)

根据您提供的信息:您正在使用IB,并且您认为Interface Builder中的所有内容都已正确连接。

假设您的ClassB视图控制器的nib文件是“ClassB.xib”。

而不是

b = [[ClassB alloc] init];

使用

b = [[ClassB alloc] initWithNibName:@"ClassB.xib" boundle:nil];