我開始使用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以獲取所有值?
還有其他更好的方法來實現嗎?