有故障的按钮会在按下之前拨打电话

时间:2011-05-24 13:41:45

标签: iphone xcode button

代码可以工作,但是应用程序在没有按下按钮的情况下调用字符串。一旦我到达应用程序的特定页面,它就会绕过所有内容(其他按钮,地图视图等)并拨打电话......

我正在使用的代码是:

   - (void)loadNo2 {
        UIButton *no2 = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        [no2 setTitle:@"2108642700" forState:UIControlStateNormal];
        [no2 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
        [no2 setBackgroundColor:[UIColor blackColor]];
        [no2 setFrame:CGRectMake(84, 260, 152, 31)];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://1234567890"]];
        [self addSubview:no2];
    }

它有什么问题???

2 个答案:

答案 0 :(得分:3)

此行显示要拨打的对话框

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://1234567890"]];

您没有将其添加为按钮操作 - 您只是在调用它。

用这个替换该行:

  [no2 addTarget:self 
          action:@selector(onNo2Touch) 
forControlEvents:UIControlEventTouchUpInside];

并添加:

-(void) onNo2Touch:(id) sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://1234567890"]];
}

答案 1 :(得分:0)

看起来你已经从创建按钮的方法中调用了openURL。 你应该调用UIApplication sharedApp ...(即

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://1234567890"]]; ) 在从动作调用的方法内部(映射到按钮)。