我开始使用Swift进行移动应用程序开发。我使用tableView原型单元格设计了一个viewController中的窗体(不需要使用UITableViewController和静态单元,因为我需要在视图控制器中放置其他控件)。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")
}}
这里有几件事情我很困惑,无法继续。
我在的cellForRowAtIndexPath添加目标txtModel和它映射到touchUpInside事件函数txtModelChanged。只是它没有触发该功能,也没有引发任何错误。任何猜测可能是什么问题?
我试图通过点击“完成”按钮来获取所有对象的值。如何遍历tableView以获取所有值?
还有其他更好的方法来实现吗?