gpt4 book ai didi

ios - 没有调用我的 didSelectRowAtIndexPath 函数

转载 作者:行者123 更新时间:2023-12-01 16:28:44 24 4
gpt4 key购买 nike

我正在尝试创建一个应用程序,该应用程序在屏幕顶部的标签上显示一些数据,然后下半部分左右是一个表格,它允许选择表格中的一个项目以弹出另一个用于编辑值的 segue .当用户选择列表中的项目时,我正在努力让 didSelectRowAtIndexPath 被调用。我已将 View Controller 的代码放在下面。

我已经搜索了很多,到目前为止还没有找到任何可以解释我所看到的问题的东西。

我认为我已经正确连接了代表和数据源的所有内容,并且我没有使用任何手势捕获,所以不是那些。有没有人有任何想法?

我还附上了 View Controller 连接和属性检查器设置的屏幕截图。

Connections screengrab

Attributes screengrab

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.
}


}

最佳答案

这对我有用:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("works");
}

func 之前添加覆盖也许?

关于ios - 没有调用我的 didSelectRowAtIndexPath 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33521074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com