iOS swift : TableViewController with inner TableView in a static cell

标签 ios swift uitableview tableview

Comparison : left TableViewController : not Working ; right ViewController : working

我对左侧 Controller 中的内部 tableView 有疑问: 因为左侧 Controller 是一个带有静态单元格的 TableViewController,它无法实现 UITableViewDelegate、UITableViewDataSource 协议(protocol),所以我不能使用 TableViewController 类作为内部 tableView 的委托(delegate)。

我创建了一个类 (InnerTVDelegate) 作为内部 tableView 的委托(delegate),我将 tableView 委托(delegate)/数据源设置为 InnerTVDelegate 的一个实例,但它不起作用。

这是我的类(class):

导入 UIKit

类 MyTableViewController: UITableViewController {

@IBOutlet weak var innerTableView: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()

    innerTableView.delegate = InnerTVDelegate()
    innerTableView.dataSource = InnerTVDelegate()
}

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

类 InnerTVDelegate : NSObject, UITableViewDelegate, UITableViewDataSource {

var items: [String] = ["We", "Heart", "Swift"]


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

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

    cell.mytextLabel?.text = self.items[indexPath.row]

    return cell
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    print("You selected cell #\(indexPath.row)!")
}

这有什么问题?

谢谢

最佳答案

试试这个

@IBOutlet weak var innerTableView: UITableView!
    var tvDelegate:InnerTVDelegate()!
    override func viewDidLoad() {
        super.viewDidLoad()
        tvDelegate = InnerTVDelegate()
        innerTableView.delegate = tvDelegate
        innerTableView.dataSource = tvDelegate
    }

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

关于iOS swift : TableViewController with inner TableView in a static cell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45347408/

相关文章:

ios - 在单个 UIWebView 中打开 URL

ios - 如何根据剩余高度来布局 UIImageViews?

ios - 删除一个元素后数组索引不更新

swift - 如何在 Swift 中通过单击嵌入 View 中的按钮来关闭/关闭/隐藏菜单?

swift - 在 Swift 中异步挂载卷

ios - 使用节标题删除 TableView 中的行

javascript - 在 Canvas 上绘制 html5 视频 - 在 iPad 上

ios - iOS Crashlytics 报告了无数次罕见的崩溃。这种现象很好理解吗?

ios - UITableViewCell 内的 UICollectionView

iphone - 从 tableview 获取数据并将其存储到 sqlite 数据库