第二个视图上的表格视图单元格

Posted

技术标签:

【中文标题】第二个视图上的表格视图单元格【英文标题】:Table View Cells on second View 【发布时间】:2019-01-04 21:00:20 【问题描述】:

我的第一个视图上有一个带有单元格的 TableView,它运行良好。但是我想单击某个单元格,然后应该出现带有新表视图和单元格的新视图。但是点击后,我只能看到没有任何单元格的TableView。

SecondViewController 代码

import UIKit
import WebKit
import Kanna
import Gloss

class SecondViewController: UIViewController, UITableViewDelegate, 
UITableViewDataSource 

@IBOutlet weak var menuTable: SecondViewControllerTableViewCell!


public func tableView(_ tableView: UITableView, 
numberOfRowsInSection section: Int) -> Int 
    return 3

public func tableView(_ tableView: UITableView, cellForRowAt 
indexPath: IndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCell(withIdentifier: 
"lte_secondPage", for: indexPath) as! ViewControllerTableViewCell

    return cell

override func viewDidLoad() 
    super.viewDidLoad()



FirstViewController 代码

class ViewController: UIViewController, UITableViewDelegate,     
UITableViewDataSource 
let logos = ["ks", "vf", "ls"]
func tableView(_ tableView: UITableView, numberOfRowsInSection 
section: Int) -> Int 
    return logos.count


func tableView(_ tableView: UITableView, cellForRowAt indexPath: 
IndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCell(withIdentifier: 
"lte_firstPage", for: indexPath) as! ViewControllerTableViewCell
   @code@
    
    return cell


func tableView(_ tableView: UITableView, didSelectRowAt indexPath: 
IndexPath) 
    performSegue(withIdentifier: "segue", sender: self)



override func viewDidLoad() 
    super.viewDidLoad()


第一个表格单元控制器代码

import UIKit

class ViewControllerTableViewCell: UITableViewCell 
@IBOutlet weak var logoImage: UIImageView!
@IBOutlet weak var regionQuantity: UILabel!
@IBOutlet weak var localityQuantity: UILabel!
@IBOutlet weak var BSQuantity: UILabel!
@IBOutlet weak var updateDate: UILabel!
@IBOutlet weak var namesOfBS: UILabel!


override func awakeFromNib() 
    super.awakeFromNib()
    // Initialization code


override func setSelected(_ selected: Bool, animated: Bool) 
    super.setSelected(selected, animated: animated)





第二个表格单元控制器代码

 import UIKit

class SecondViewControllerTableViewCell: UITableViewCell 
@IBOutlet weak var label: 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



当我试图打印一些东西时 public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int print(3) return 3 它什么也没打印 2019-01-04 22:54:07.057626+0200 BaseStation[12620:273434] <UIView: 0x7f9f52c1e640; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x600001a62a80>>'s window is not equal to <BaseStation.SecondViewController: 0x7f9f52c239e0>'s view's window! 在第一个视图中单击单元格后,在调试器中出现

【问题讨论】:

【参考方案1】:

我认为您要问的是.. 当您单击表格视图中的单元格时,您会导航到一个新的视图控制器。而且这个新的视图控制器有一个没有填充任何单元格的表格视图。

基本上你的问题是......为什么你的表格视图是空的。

1) 您是否检查过您是否正确设置了表格视图数据源?

2) 数据源是否为空?

3) 您的 tableview 是否有可见的高度/宽度?​​

【讨论】:

哦,我真的忘记连接数据源了,但是当我连接它时,现在它打印我。但我发现了新错误let cell = tableView.dequeueReusableCell(withIdentifier: "lte_secondPage", for: indexPath) as! ViewControllerTableViewCell Thread 1: signal SIGABRT。在调试器中Could not cast value of type 'BaseStation.SecondViewControllerTableViewCell' (0x107268fb8) to 'BaseStation.ViewControllerTableViewCell' (0x107269050). 发现错误ViewControllerTableViewCell 应该是SecondViewControllerTableViewCell。谢谢

以上是关于第二个视图上的表格视图单元格的主要内容,如果未能解决你的问题,请参考以下文章

单元格未填充在表格内的第二个集合视图中

如何访问表格视图单元格

表格视图中的按钮没有响应其单元格编号

如何将单独的 xib 单元格注册到多个表格视图?

如何在一个表格视图中添加三个表格视图单元格作为子视图?

如何组织表格视图单元格