gpt4 book ai didi

ios - didSelectRowAtIndexPath 不起作用,Swift 3

转载 作者:IT王子 更新时间:2023-10-29 05:21:13 24 4
gpt4 key购买 nike

谁能明白为什么 didSelectRowAtIndexPath 不会被调用? delegate 在代码和 Storyboard 中对我进行了三重检查。

class AddCard: UIViewController,UIPopoverPresentationControllerDelegate, UITableViewDataSource, UITableViewDelegate {

@IBOutlet weak var cardView: UIView!
@IBOutlet weak var tableView: UITableView!

let tableItems = ["Background Color","Background Image","Font Style","Font Color"]
let cellID = "cell"

override func viewDidLoad() {
super.viewDidLoad()

tableView.delegate = self
tableView.dataSource = self
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

func setBackgroundColor (_ color: UIColor) {
cardView.backgroundColor = color
}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return tableItems.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: cellID, for: indexPath as IndexPath)

let row = indexPath.row
cell.textLabel?.text = tableItems[row]

return cell
}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: IndexPath) {
tableView.deselectRow(at: indexPath as IndexPath, animated: true)
print(indexPath.row)
let row = indexPath.row
switch(row){
case 0:
let popoverVC = storyboard?.instantiateViewController(withIdentifier: "colorPickerVC") as! ColorPickerViewController
popoverVC.modalPresentationStyle = .popover
popoverVC.preferredContentSize = CGSize(width: 284, height: 446)
if let popoverController = popoverVC.popoverPresentationController {
popoverController.sourceView = self.view
popoverController.sourceRect = CGRect(x: 0, y: 0, width: 85, height: 30)
popoverController.permittedArrowDirections = .any
popoverController.delegate = self
popoverVC.delegate = self
}
present(popoverVC, animated: true, completion: nil)
break
default: break

}
}

}

最佳答案

Swift 3 修改了方法的签名(也有很多方法,新的“规则”/样式)

替换:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: IndexPath)
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)

注意 _didSelectRowAtdidSelectRowAtIndexPath,就像您更新的其他内容一样(也采用相同的“样式”),但不是这个。

删除该行并让 XCode 自动完成。否则,您可以将其替换为文档中的那个。

关于ios - didSelectRowAtIndexPath 不起作用,Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40491818/

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