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 回答