2012-07-25 141 views
0

我有一个普遍的问题,我想隐藏从另一个类的按钮,该类是一个包装类混合C++代码和客观c代码。我有一个函数说:例如,行动{},该功能将显示一些按钮,并隐藏其他一些按钮取决于输入。如果我在相同的类中调用该函数,它工作正常。但是,如果我从包装类调用不按预期工作。设置为隐藏后隐藏的按钮不隐藏 - IOS

当一个按钮点击我试图通过调用这样的函数来改变按钮的状态。有效。

main_class.mm 
- (IBAction)switchViews:(id)sender 
{ 
    [self doaction:5]; 
} 

-(void) doaction:user_id 
{ 
    self.email_id.hidden = YES; 
} 


@interface interface_wrapper : NSObject 
{ 

@public 
    rootViewController *root_view; 

} 

-(void) doaction:(long)user_id; 

@end 


@implementation gui_interface_wrapper 

-(void) success:(long) user_id 
{ 
     // root_view is set with root controller object. So that I can access main which is having the button. 

     [root_view.main doaction:user_id]; 

} 

@end 但是,如果我没有叫那个地方的功能。一个函数调用是由一些包装类之外的,它有一个指向该对象的指针[我检查了自己的地址在两个调用中都是一样的]按钮被禁用而不是隐藏。我们可以从包装类做GUI操作吗?

有什么想法?提前致谢。

+0

包装类的实例和类的实例之间的关系是什么与按钮被隐藏? – user523234 2012-07-25 04:44:05

+0

包装类具有指向具有该按钮的对象的指针。 – Feroz 2012-07-25 04:58:07

+0

委托模式可能是您需要使用的。一个例子在这里给出http://stackoverflow.com/questions/9629417/calling-a-method-from-another-class-in-objective-c/10898471#10898471 – user523234 2012-07-25 05:50:26

回答

0

您是否正在创建该类的另一个对象并调用其方法?比它不会工作。

class A 
{ 
     object ofA; 
} 
//Code In same class 

A a = init(); 
a.ofA = some value; 

//Code In some other class 
A anotherA = init(); 
anotherA.ofA = some other value; 

您是否抱怨a的值不会改变?这不会因为你正在改变另一个,并希望反映在...我希望这是你的问题如果不是你应该把一些代码

+0

不,我有该对象的指针,并在包装​​类中使用它。在我的函数self.email_id.hidden = YES; email_id是需要隐藏的文本字段。我在两次调用中都检查自己的地址,两者都显示相同的地址。当我这样做的电子邮件ID被禁用我无法点击。有一些行动发生但不明确。 – Feroz 2012-07-25 04:49:26

+0

你可以通过编辑将两个coe放在你的问题中吗? – 2012-07-25 04:54:27