我想創建一個應用程序,它在屏幕頂部的標籤上顯示一些數據,然後下半部分左右是允許選擇表格中的項目的表格彈出另一個編輯值。我努力通過用戶選擇列表上的項目來調用didSelectRowAtIndexPath。我已經把視圖控制器的代碼放在下面。沒有調用我的didSelectRowAtIndexPath函數
我搜索了很多,至今沒有發現任何解釋我所看到的問題的東西。
我想我已經把代碼和數據源的所有東西連接起來了,而且我沒有使用任何手勢捕獲,所以不是那些。有沒有人有任何想法?
我附加了視圖控制器連接和屬性檢查器設置的屏幕截圖。
import UIKit
class TemperatureViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var CurrentTemp: UILabel!
@IBOutlet weak var HeaterStatus: UILabel!
@IBOutlet weak var ChillerStatus: UILabel!
@IBOutlet weak var TempTableView: UITableView!
var settings = [TemperatureSettings]()
var HeaterTemp:Float = 0.0
var ChillerTemp:Float = 0.0
var ThresholdTemp:Float = 0.0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.loadTempSettings()
TempTableView.delegate = self
TempTableView.dataSource = self
TempTableView.allowsSelection = true
TempTableView.editing = false
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.loadTempSettings()
}
func loadTempSettings() {
let TempSetting1 = TemperatureSettings(name: "Heater On at", CurrentSetting: HeaterTemp)!
let TempSetting2 = TemperatureSettings(name: "Chiller On at", CurrentSetting: ChillerTemp)!
let TempSetting3 = TemperatureSettings(name: "Threshold", CurrentSetting: ThresholdTemp)!
settings = [TempSetting1, TempSetting2, TempSetting3]
TempTableView.reloadData()
//refreshControl?.endRefreshing()
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return settings.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// Stop spoof separators after the table entries for blank entries
tableView.tableFooterView = UIView(frame: CGRect.zeroRect)
// Turn off the separator for each cell.
tableView.separatorStyle = UITableViewCellSeparatorStyle.None
let cellIdentifier = "TemperatureSettingsTableViewCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! TemperatureSettingsTableViewCell
let setting = settings[indexPath.row]
cell.SettingNameLabel.text = setting.name
cell.SettingCurrentLabel.text = String(format: "%.1f C", setting.CurrentSetting)
cell.SettingCurrentLabel.textAlignment = .Left
// Configure the cell...
//useTimer = true
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("Setting Row \(indexPath.row) clicked")
performSegueWithIdentifier("Settings", sender: self)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
只需添加,數據就會填充到表格中,以便部件正在工作,而不是用戶交互。 –
您的tableView是否正確繪製,並且該行未被選中?你檢查過你的tableView selectionMode嗎? – Nanoc
您的UITableViewDelegate是否已在您的UITableView中正確設置並且選擇模式爲單選? –