Я создал класс с именем BlogPost и tableView. TableView заполняется многими ячейками, и каждая ячейка представляет данные другого пользователя (объект blogPost). В каждой ячейке есть кнопка со значком телефона, и я хочу, чтобы каждый раз, когда пользователь нажимал на кнопку телефона в каждой ячейке, он вызывал номер указанного c объекта в этой ячейке. Проблема в том, что в функции кнопки нет доступа к значению объекта. Строка:
var num = blogPost.phone
работает внутри функции setBlogPost, но не в функции кнопки вне функции setBlogPost:
@IBAction func whatsAppButton(_ sender: Any) {
//doesnt work
var num = blogPost.phone
openWhatsapp(number: num)
}
num выдает ошибку «Использование неразрешенного» идентификатор 'blogPost'.
Полный код:
import UIKit
class Tavla: UITableViewCell {
@IBOutlet weak var nameLabelTavla: UILabel!
@IBOutlet weak var locationButtonTavla: UIButton!
@IBOutlet weak var phoneButtonTavla: UIButton!
fileprivate let application = UIApplication.shared
func setBLogPost(blogPost: BlogPost) {
nameLabelTavla.text = blogPost.name
if blogPost.elsertext != "" {
locationButtonTavla.backgroundColor = UIColor(red: 135/255, green: 197/255, blue: 113/255, alpha: 0.5)
locationButtonTavla.setTitle("", for: .normal)
}
else{
}
//num works fine
var num = blogPost.phone
}
@IBAction func whatsAppButton(_ sender: Any) {
//num gets an error of "Use of unresolved identifier 'blogPost'
var num = blogPost.phone
openWhatsapp(number: num)
}
func openWhatsapp(number: String){
let urlWhats = "whatsapp://send?phone=\(number)&abid=12354&text=לעדכן מיקום באפליקציה"
if let urlString = urlWhats.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed) {
if let whatsappURL = URL(string: urlString) {
if UIApplication.shared.canOpenURL(whatsappURL) {
UIApplication.shared.open(whatsappURL)
} else {
print("Install Whatsapp")
}
}
}
}
}