使用Swift拨打电话号码
问题描述:
如何将存储电话号码的变量分配给按钮以调用该号码?使用Swift拨打电话号码
我正在使用Swift。这里是我的代码:
func base() {
var myBase = sharedDefaults!.objectForKey("base") as? String
if myBase != nil {
if myBase == "FRA" {
titleLabel.text = "FRANKFURT"
adressLabel.text = "some adress"
var phone = "+49123456 69 69804616"
coorPhone.setTitle("Duty Desk : \(phone)", forState: .Normal)
logoImage.image = UIImage(named: "flaggermany")
} else if myBase == "LHR" {
titleLabel.text = "LONDON"
adressLabel.text = "some adress"
var phone = "+44123456"
coorPhone.setTitle("Duty Desk : \(phone)", forState: .Normal)
logoImage.image = UIImage(named: "flaguk")
}
}
@IBAction func phoneButtonPressed(sender: AnyObject) {
// let telUrlString = "tel://" + phone
// UIApplication.sharedApplication().openURL(NSURL(string: "\ (telUrlString)")!)
}
答
您可以通过下面的类声明,如下所示声明声明它的phone
变量作为一个全球性的为你的类:
通过声明这种方式,你可以在任何地方访问它在你的班级和现在你可以在你的函数这种方式将值分配给它:
func base() {
var myBase = sharedDefaults.objectForKey("base") as? String
if myBase != nil {
if myBase == "FRA" {
titleLabel.text = "FRANKFURT"
adressLabel.text = "some adress"
phone = "+49123456 69 69804616"
coorPhone.setTitle("Duty Desk : \(phone)", forState: .Normal)
logoImage.image = UIImage(named: "flaggermany")
}
else if myBase == "LHR" {
titleLabel.text = "LONDON"
adressLabel.text = "some adress"
phone = "+44123456"
coorPhone.setTitle("Duty Desk : \(phone)", forState: .Normal)
logoImage.image = UIImage(named: "flaguk")
}
}
}
之后,你可以使用这种方式到另一个功能:
@IBAction func phoneButtonPressed(sender: AnyObject) {
if let url = NSURL(string: "tel://\(phone)") {
UIApplication.sharedApplication().openURL(url)
}
}
希望这会对你有所帮助。
答
@IBAction func phoneButtonPressed(sender: UIButton) {
if let url = NSURL(string: "tel://\(phone)") {
UIApplication.sharedApplication().openURL(url)
}
}
,如果你定义变量的手机在你viewController.swift文件的顶部(以下级呼叫),您可以使用此代码,这样它可以在访问功能。
非常感谢你的工作 – birkyboy