2016-02-12 44 views
1

我有一个UIButton作为一个操作。我想设置一个动态的网址,也是一个动态文本(视图加载,而不是点击),最终。以编程方式更改UIButton文本并打开url

@IBAction func openUrl(sender: UIButton) { 
    sender.setTitle("Hello World", forState: .Normal) 
    UIApplication.sharedApplication().openURL(NSURL(string: "http://www.google.com")!) 
} 

上述代码正在工作,但按钮标题只有在单击后才会更改为“Hello World”。

enter image description here

+0

你有NSAppTransportSecurity设置?如果没有,您需要将http更改为https。 – MwcsMac

+0

我已将它设置在'Info.plist'中。没有问题,打开网址,如果我不想设置标题。 – Sayanee

+0

@Sayanee检查IBAction是否仍然正确连接到按钮。当插座没有连接时也会引发该错误。 – kRiZ

回答

2

覆盖viewDidLoad并在那里设置标题。

override func viewDidLoad() { 
    super.viewDidLoad() 

    yourButtonOutlet.setTitle("Hello World", forState: .Normal) 
} 

从IBAction为删除setTitle()行:另外,如果您尚未创建一个出口的按钮。

这将为您的控制器加载视图时设置按钮的标题。

+0

谢谢@kRiZ :)我不知道我必须创建一个动作,然后为同一个按钮的出路。 #learningios – Sayanee

1

//对于在视图加载时间按钮的变化标题:

override func viewDidLoad() { 
    super.viewDidLoad() 
    yourButtonOutlet.setTitle("Hello World", forState: .Normal) 
} 

//对于打开链接:

@IBAction func openLink(sender:UIButton){   
    var url = NSURL(string: "http://www.google.com") 
    if UIApplication.sharedApplication().canOpenURL(url!) == true { 
     UIApplication.sharedApplication().openURL(url!) 
    } 
} 
相关问题