ios - UITableView - 与表格 View 的交互消失了一切

标签 ios objective-c swift

我有一个 UITableView,并将其添加为 UIViewsubview。 每当我选择一个单元格时,UITableView 中的所有内容都会消失。

其他时候已经遇到过这个问题,但是没有更改代码就停止了。

目前我使用 Swift,但是在 Objective-C 中已经发生了。

代码:

TableView 委托(delegate):

numberOfSectionsInTableView
numberOfRowsInSection
cellForRowAtIndexPath
heightForRowAtIndexPath
didSelectRowAtIndexPath

同时注册了cell

的标识符
override func viewDidLoad() {
        super.viewDidLoad()
        self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "Cell")

        listObjectsToList = ["String 1","String 2","String 3"]

        self.view.frame.size = CGSizeMake(300, 110)
        self.view.layer.cornerRadius = 5
        self.view.layer.masksToBounds = true

        self.tableView.scrollEnabled = false
    }

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

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

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("Cell") as UITableViewCell
        cell.textLabel.text = listObjectsToList.objectAtIndex(indexPath.row) as? String
        return cell
    }

    override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        return 40
    }

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        self.tableView.deselectRowAtIndexPath(indexPath, animated: true)
        let objectSelected: AnyObject = listObjectsToList.objectAtIndex(indexPath.row)
        object.type = objectSelected as String
        self.view.removeFromSuperview()
    }

但是方法 didSelectRowAtIndexPath 没有被调用...

添加tableview的代码:

        var listTypeTableViewController = ListTypeTableViewController()
        listTypeTableViewController.view.frame = CGRectMake(10, 80, 300, 130)
        self.view.addSubview(listTypeTableViewController.view)

我试过:

        var listTypeTableViewController = ListTypeTableViewController()
        listTypeTableViewController.view.frame = CGRectMake(10, 80, 300, 130)
        self.view.addSubview(listTypeTableViewController.tableView)

但没有成功

最佳答案

问题是,我只是想提取 UITableView 来显示它。当我需要添加一个 UITableViewController 作为我的 UIViewController 的 child 时:

var listTypeTableViewController = ListTypeTableViewController(nibName: "TableViewTypeScheduling", bundle: nil)        
listTypeTableViewController.view.frame = CGRectMake(10, 80, 300, 130)        
addChildViewController(listTypeTableViewController)
view.addSubview(listTypeTableViewController.view)

关于ios - UITableView - 与表格 View 的交互消失了一切,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27001654/

相关文章:

ios - AVAudioPlayer 在电话的音箱上播放音乐时播放音频

swift - 使用 PostgreSQL 在 Vapor 3 中上传图像

ios - 设置TextView边框颜色

iOS - UITableView 删除一个部分中的所有行

iOS 在应用程序内存不足警告时淡入淡出音频

ios - Objective-C 回调方法作为另一个类的参数

objective-c - 仅在 iOS 4 上的 ARC 中为 "Modifying layer that is being finalized"

swift - 当 TableView 中的项目超过 12 个或更多时,我将如何编写测试以确保 UIbutton "Show all Providers"出现?

ios - 如何使用 Eureka 表单从更改文本字段的行中检索值?

ios - 如何定位 SCNPlane 上的水龙头?