0

一般的な質問があります。ボタンを別のクラスから隠したいのですが、そのクラスは C++ コードと目的の C コードを混在させるラッパー クラスです。ex: do action{} という関数があります。その関数は、入力に応じていくつかのボタンを表示し、他のボタンを非表示にします。同じクラスで関数を呼び出すと、正常に機能します。ただし、期待どおりに機能しないラッパー クラスから呼び出した場合。

ボタンがクリックされたとき、このような関数を呼び出してボタンの状態を変更しようとしました。出来た。

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 アクションを実行できますか?

何か案が?前もって感謝します。

4

1 に答える 1

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 の値が変わらないことに文句を言っていますか? anotherA を変更していて、a に反映されることを期待しているからではありません...それがあなたの問題であることを願っています。

于 2012-07-25T04:33:50.137 に答える