Вот простое решение. Он будет работать для любого количества ячеек.
Что вам нужно сделать, это перебрать ячейки и выяснить, является ли textField той конкретной ячейкой пустой или нет. Теперь вопрос в том, как вы будете проходить через ячейки, есть ли для этого делегат? Ответ №
Вы должны вручную построить indexPaths, чтобы получить ячейки из таблицы.
Простой ход. Ваша настройка совершенно правильная. У вас должен быть вид таблицы в вашем ViewController. Итак, IBOutlet tableview должен быть там. Я назвал свой TableView «myTableView». И выход TextField должен находиться внутри TableViewCell, который также прав. В конце действия метод действия кнопки Enter должен находиться в контроллере представления.
Убедитесь, что вы правильно соедините все розетки.
Вот пример пользовательского TableViewCell -
import UIKit
class CustomTableViewCell: UITableViewCell {
@IBOutlet weak var internalTextField : UITextField!
override func awakeFromNib() {
super.awakeFromNib()
}
}
А теперь просто пойти на ViewController.swift-
import UIKit
class ViewController: UIViewController, UITableViewDataSource {
@IBOutlet weak var myTableView : UITableView!
var numberOfCells = 2 //you can update it to be any number
override func viewDidLoad() {
super.viewDidLoad()
self.myTableView.dataSource! = self //assign the delegate
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return numberOfCells
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell : CustomTableViewCell = tableView.dequeueReusableCellWithIdentifier("customCell", forIndexPath: indexPath) as! CustomTableViewCell
return cell;
}
@IBAction func pressedEnter(){
var row = 0
while row < numberOfCells { //iterate through the tableview's cells
let indexPath : NSIndexPath = NSIndexPath(forRow: row, inSection: 0) //Create the indexpath to get the cell
let cell : CustomTableViewCell = self.myTableView.cellForRowAtIndexPath(indexPath) as! CustomTableViewCell
if cell.internalTextField.text!.isEmpty{
print("TextField is Cell \(row) is Empty")
}
else{
print("TextField is Cell \(row) is NOT Empty")
}
row += 1
}
}
}
Есть комментарии, которые объясняют все. Надеюсь это поможет.
Могу ли я сделать что-то вроде этого @IBAction func enquireButton (отправитель: AnyObject) { let cell = tableView.dequeueReusableCellWithIdentifier («Детали для гостей») как! GuestDetailsTableViewCell; let fullName1 = cell.fullNameTextField.text !; } –