gpt4 book ai didi

ios - 从 TextFields 获取 tableViewCell 的所有值

转载 作者:行者123 更新时间:2023-11-29 06:02:16 25 4
gpt4 key购买 nike

我想使用 TextFieldsTableViewCell 获取所有,但我不明白如何通过单击按钮来做到这一点。

如果单击添加按钮,我可以添加新行。所以我可以制作任意数量的行。

我的代码在这里:

struct Section {
let title: String
var rows: [String]
}

class SettingsScheduleAndPricesViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate {

var hall: Halls?

var sections = [Section]()

override func viewDidLoad() {
super.viewDidLoad()
sections = [Section(title: "Day of week", rows: []),
Section(title: "Second section", rows: [""]),
Section(title: "Third section", rows: [""])]
}

// MARK: - TableView
func numberOfSections(in tableView: UITableView) -> Int {
return sections.count
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return sections[section].rows.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.section == 0 {
...
} else if indexPath.section == 1 {
let hourlyRateCell = tableView.dequeueReusableCell(withIdentifier: "hourlyRateCell", for: indexPath) as! SettingsHourlyRateCell
return hourlyRateCell
} else {
...
}
}

func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return sections[section].title
}

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let frame: CGRect = tableView.frame
if section == 0 {
let headerView: UIView = UIView(frame: CGRect(x: 0, y: 0, width: frame.size.width, height: frame.size.height))
headerView.backgroundColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)
return headerView
} else if section == 1 {
let addButton: UIButton = UIButton(frame: CGRect(x: frame.size.width - 50, y: 0, width: 50, height: 30))
addButton.backgroundColor = UIColor.clear
addButton.setTitleColor(#colorLiteral(red: 0.2588235438, green: 0.7568627596, blue: 0.9686274529, alpha: 1), for: .normal)
addButton.setTitle(NSLocalizableAdd, for: .normal)
addButton.addTarget(self, action: #selector(SettingsScheduleAndPricesViewController.addHourlyRate(sender:)), for: .touchUpInside)
let headerView: UIView = UIView(frame: CGRect(x: 0, y: 0, width: frame.size.width, height: frame.size.height))
headerView.backgroundColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)
headerView.addSubview(addButton)
return headerView
} else {
...
}
}

@IBAction func saveBarButtonPressed(_ sender: Any) {

// here I want to get all values from my Cell from my TextFields

}

@objc func addHourlyRate(sender: UIButton) {
let newRow = ""
append(row: newRow, in: 1)
}

func append(row : String, in section: Int) {
let insertionIndex = sections[section].rows.count
sections[section].rows.append(row)
let indexPath = IndexPath(row: insertionIndex, section: section)
tableView.insertRows(at: [indexPath], with: .automatic)
}
}

class SettingsHourlyRateCell: UITableViewCell, UITextFieldDelegate {
@IBOutlet weak var rubHourTF: UITextField!
}

我的模拟器示例:

enter image description here

在我的示例中,我需要从三行获取firstsecondthird字符串文本。并附加到空数组中或仅在控制台中打印。

在方法@IBAction func saveBarButtonPressed(_ sender: Any)中。

我找不到任何可以帮助我的东西。

最佳答案

也许我的方法会对某人有所帮助,但我仍然设法这样做。我只需在我的按钮中添加以下代码:

@IBAction func saveBarButtonPressed(_ sender: Any) {
let countRowsOne = tableView.numberOfRows(inSection: 1)
for index in 0...countRowsOne {
let indexPath = IndexPath(row: index, section: 1)
if let cell = tableView.cellForRow(at: indexPath) as? SettingsHourlyRateCell {
...
}
...
}
}
}

关于ios - 从 TextFields 获取 tableViewCell 的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54517627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com