使用swift中的新元素更新tableview

时间:2015-02-19 20:57:43

标签: ios uitableview swift rss

所以我在numberOfRowsInSection中有这个代码块来改变根据按下的侧边栏选项显示的数量(不同的tableView)。当用户选择索引#1时,他们应该只看到获取请求中存在的行数。当我更改索引时,什么都不会更新,我猜这是因为它没有被刷新/更新。我应该使用什么代码来正确更新它以及它应放在何处?

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete method implementation.
    // Return the number of rows in the section.
    if sidebarindex == 3{
    return feeds.count
    } else if sidebarindex == 2{
    return feeds.count
    } else if sidebarindex == 1{

        let moc = SwiftCoreDataHelper.managedObjectContext()
        var favNames: [String] = []
        let fetchRequestM = NSFetchRequest(entityName:"Favorite")
        if let favs = moc.executeFetchRequest(fetchRequestM, error: nil) as? [Favorite] {
            favNames = favs.map { $0.favoriteTitle }}

        if favNames.count != 0{
            return favNames.count
        }else{
            return 1
        }

    } else{
    return feeds.count
    }



}

2 个答案:

答案 0 :(得分:1)

注意:IOS和Swift的初学者,所以请告诉我我是不是错了。但这是我试图回答你的问题:

用于刷新tableView中数据的代码是:

tableView.reloadData()

在没有看到代码的情况下,我无法确切地说出放置它的位置,但是一个有根据的猜测是将它放在按下侧栏项时被激活的功能中。例如:

@IBAction func sideBarItem1Pressed(sender: UIButton) {
    // Set the index here
    tableView.reloadData()
}

如果您使用代码更新帖子,我可以确定它的去向。

答案 1 :(得分:0)

swift 4

func reloadTableData(){

   self.tableMyList.reloadData()
}