1

重複の可能性:
目的の C 関数を呼び出す C 関数

ViewController.m で次のコードを実行しました

-(void) callIncomingCreateButton
{

        UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

        //set the position of the button
        button.frame = CGRectMake(100, 170, 100, 30);

        //set the button's title
        [button setTitle:@"Click Me!" forState:UIControlStateNormal];

        //add the button to the view
        [self.view addSubview:button];
}

- (IBAction)DemoCall:(id)sender {

    callIncoming(1, "a");
}

int callIncoming(int a, char* b)
{
    ViewController * tempObj = [[ViewController alloc] init];
    [tempObj callIncomingCreateButton];

    return a;

}

しかし、まだ UIButton が表示されていません。ここで何が欠けていますか。

編集:これはiOS用です。はい、関数が呼び出されます。ブレークポイントを設定して、ステップスルーしました。

4

1 に答える 1

0
ViewController * tempObj = [[ViewController alloc] init];
[tempObj callIncomingClass];

あなたの例から見分けるのは難しいですが、それ-callIncomingClassが実際にはの定義の一部であり、ViewControllerどこcallIncoming()かから呼び出されていると仮定すると、おそらく問題はtempObj現在のビューコントローラではないということです。ビューをロードするには、ナビゲーションスタックにプッシュtempObjするか、モーダルで表示するか、アクティブなビューコントローラーにする必要があります。ビューがロードされていない場合、ボタンを追加するビューはありません。ビューがある場合でも、そのビューはウィンドウに表示されません。

于 2012-10-12T09:28:50.457 に答える