簡體   English   中英

如何在 Swift 中將 UILabel 作為 URL 傳遞?

[英]How can I pass a UILabel as a URL in Swift?

我有一個名為itemOneURL的 UILabel,它從外部數據庫讀取 URL 並將值作為字符串添加到此 label 中。 我有一個名為viewItemOne的單獨按鈕(使用工作 segue),一旦選擇,它將獲取itemOneURL URL 的內容並使用默認瀏覽器打開此鏈接。 這是我目前正在使用的代碼。

@IBOutlet weak var itemOneURL: UILabel!

@IBAction func viewItemOne(_ sender: UIButton) {
    
    let firstURL = itemOneURL as? String
   
    UIApplication.shared.open(URL(string:"\(firstURL)")! as URL, options: [:], completionHandler: nil)
    
}

但是,一旦我在 UI 上使用 select 這個按鈕,我的應用程序就不會執行任何操作,而當我在其他地方使用以下語法時,它會起作用並加載 URL?

UIApplication.shared.open(URL(string:"https://stackoverflow.com")! as URL, options: [:], completionHandler: nil)

是否有什么我做錯了,目前導致按鈕在選擇后不執行任何操作?

“如何在 Swift 中將 UILabel 作為 URL 傳遞?”

簡短的回答:不要。 不要使用視圖對象來存儲信息。

給你的 viewController 一個屬性itemOneURL

重命名您的 label itemOneURLLabel (使用refactor>rename菜單項和 Xcode 將重命名每個出現,包括故事板或 XIB 文件中的任何出口鏈接。)

將 didSet 方法添加到您的 itemOneURL 變量:

var itemOneURL: String {
   didSet {
      itemOneURLLabel.text = itemOneURL
   }
}

然后,如果您需要字符串 URL 值,它應該在字符串變量中。 問題解決了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM