2012-07-25 142 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