Я предпочитаю использовать шаблон проектирования делегата, когда речь идет о решении вопроса, как, что для него я считаю, что это будет намного чище подходом, чем просто сумма масс @IBActions
1- Создать Язык класса импорта Фонд
class Language {
var id: Int
var name: String
init(id: Int, name: String) {
self.id = id
self.name = name
}
}
2- Создайте пользовательскую ячейку в раскадровке или пером, а затем добавить соответствующие выходы и действия. А затем создать протокол делегата для него
import UIKit
protocol CustomCellDelegate: class {
func customCell(newLanguageSelected language: Language)
}
class CustomCell: UITableViewCell {
var language: Language!
@IBOutlet weak var languageTextLabel: UILabel!
weak var delegate: CustomCellDelegate?
func setupCustomCell(withLanguage language: Language){
self.language = language
self.languageTextLabel.text = self.language.name
}
@IBAction func buttonPressed(sender: UIButton){
delegate?.customCell(newLanguageSelected: self.language)
}
}
3- Наконец, добавьте реализацию в методе cellForRow в UITableViewDataSource и добавить реализацию делегата в классе UITableViewController
import UIKit
class YourTableViewController: UITableViewController{
var languages: [Language] = []
//implement the other methods in the dataSource
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "reuse", for: indexPath) as! CustomCell
cell.delegate = self
cell.setupCustomCell(withLanguage: languages[indexPath.row])
return cell
}
}
extension YourTableViewController: CustomCellDelegate{
func customCell(newLanguageSelected language: Language) {
//Do what you will with the language
}
}
Успехов
Вы должны попытаться создать tableView, используя динамический контент вместо статического содержимого. Это позволит вам поддерживать неограниченное количество языков. В совете используется более низкий случай верблюда при вводе имен переменных и методов в iOS. Я напишу ответ через секунду. Я работаю с предположением, что вы знаете, как работать с UITableViewDataSource и знаете, как создать пользовательскую ячейку. – DatForis