IOS表视图中的数据加载问题

Posted

技术标签:

【中文标题】IOS表视图中的数据加载问题【英文标题】:Data loading issue in Table View in IOS 【发布时间】:2017-10-18 09:33:04 【问题描述】:

我的视图控制器中有一个表格视图控制器。当我为行索引方法名称提供静态行数和单元格时,它在表格视图中对我没有任何显示。我也重新加载了表格视图,但它没有显示我不知道为什么会这样,

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


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    let cell = UITableViewCell (style: .subtitle, reuseIdentifier: "cellID")
    let message = messages[indexPath.row]
    cell.textLabel?.text = message.text

    return cell

【问题讨论】:

你有没有为你的tableview设置delegate & datasource 你需要设置代理。 【参考方案1】:

重新检查你是否设置了

tableView.delegate = self
tableView.datasource = self

还要在cellForRowAtIndexpath 上设置一个断点,以检查代码是否贯穿该块。

还要重新检查cellIdentifier(cellID)是否正确。

【讨论】:

非常感谢。你能指导我一个简短的问题吗? @DHEERAJ 当然,这是什么? 我在我的项目中使用了 bridge,我在 NSUserDefault 中存储了字符串的值,现在我想将它传递给我的 swift 类,但是当我传递它时它没有显示值。 @DHEERAJ【参考方案2】:
class ViewController:UIViewController,UITableViewDataSource,UITableViewDelegate 

                //Getting the reference variables of storyboard
                @IBOutlet weak var tableView:UITableView!
                var messages = [String]()

                override func viewDidLoad() 
                    super.viewDidLoad()


                    //Add some packages
                    messages.append("Super")
                    messages.append("Free ")
                    messages.append("Miscellaneous")
                    messages.append("All ")

                    tableView.datasource = self
                    tableView.delegate = self


                

    func numberOfSections(in tableView: UITableView) -> Int 
            return 1
        

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

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = UITableViewCell (style: .subtitle, reuseIdentifier: "cellID")
        let message = messages[indexPath.row]
        cell.textLabel?.text = message.text

        return cell
    

【讨论】:

谢谢我的回答【参考方案3】:

使用这个。这个对我有用

  class yourViewController: UIViewController,UITableViewDataSource,UITableViewDelegate 
        @IBOutlet weak var tableView:UITableView!

        override func viewDidLoad() 
            super.viewDidLoad()
            tableView.datasource = self
            tableView.delegate = self
        
        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
            return messages.count
        

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


            let message = messages[indexPath.row]
            cell.textLabel?.text = message.text

            return (cell)

        
    

【讨论】:

以上是关于IOS表视图中的数据加载问题的主要内容,如果未能解决你的问题,请参考以下文章

如何通过iOS Objective C中的appDelegate从另一个视图控制器重新加载表视图

如何在 iOS 7 中使用加载器

当从 iOS 中的另一个故事板场景调用 viewController 时,表视图变得空白(加载或重建)

组表视图 - 加载数据

从另一个视图重新加载表视图

iOS 为啥我的应用程序在重新启动之前不会将数据加载到 tableview 中?