Я начинаю разработку мобильных приложений с помощью Swift. Я разработал форму внутри viewController, используя ячейки прототипа tableView (не используя UITableViewController и статические ячейки, поскольку мне нужно разместить другие элементы управления в контроллере представления).tableView прототип ячейки с кнопкой действия за пределами tableView
Каждая ячейка имеет уникальный идентификатор и разработана с использованием панели рассказов. Я создал подкласс для UITableViewCell и назначил его всем ячейкам.
class VehicleTableViewCell: UITableViewCell {
@IBOutlet var txtModel: UITextField!
//@IBOutlet weak var txtModel: UITextField!
@IBOutlet weak var txtODO: UITextField!
@IBOutlet weak var txtFuel1: UITextField!
@IBOutlet weak var txtFuel2: UITextField!
@IBOutlet weak var lblDistanceUnit: UILabel!
@IBOutlet weak var lblFuel2Unit: UILabel!
@IBOutlet weak var lblFuel1Unit: UILabel!
@IBOutlet weak var lblMake: UILabel!
@IBOutlet weak var lblFuelType: UILabel!
@IBOutlet weak var lblCurrency: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}}
Вот мой UIViewController, что делает регулярный материал:
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate,UISearchBarDelegate {
@IBOutlet weak var tableView: UITableView!
// Array of cell identifiers
let cellArray = ["CellMake", "CellModel", "CellODO", "CellFuelType", "CellFuel1", "CellFuel2", "CellCurrency"]
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return cellArray.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCellWithIdentifier(cellArray[indexPath.row]) as! VehicleTableViewCell
if indexPath.row == 1
{
cell.txtModel.addTarget(self, action: "txtModelChanged:", forControlEvents: UIControlEvents.TouchUpInside)
println("Inside index row 1")
}
return cell
}
@IBAction func txtModelChanged(sender: UITextField!)
{
println("test")
}}
Вот несколько вещей, которые я запутался и не смог продолжить.
Я добавил цели для txtModel в cellForRowAtIndexPath и замэпили функционировать txtModelChanged на touchUpInside события. Просто он не вызывал функцию и не вызывал никаких ошибок. Любая догадка о том, что может быть проблемой?
Я пытаюсь получить значения всех объектов при нажатии кнопки «Готово». Как пройти через таблицуView, чтобы получить все значения?
Есть ли другой лучший способ добиться того же?