滚动时导航栏标题会发生变化

时间:2019-01-10 18:58:46

标签: swift uitableview uinavigationbar

嗨,我已经在这个问题上搜索了很长时间,但似乎UITableViewController中存在一个错误,当我滚动时,导航栏标题会根据我滚动的位置而变化。

Screenshot1

Screenshot2

更新:我包括了表视图控制器代码,因为我不确定它可能在哪里出错。我没有直接在此代码中修改导航标题,因为我可以在情节提要中直接进行修改。

似乎在我运行代码时,正确的标题会短暂出现,一旦数据加载,标题就会开始根据数据而奇怪地更改。

class CustomCollectionsTableViewController: UITableViewController {

    // Mark: Variables
    var collections = [Collection]()
    var currentCollectionID:String!

    // Mark: IBOutlet
    @IBOutlet var collectionsTableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Mark: Delegate
        collectionsTableView.delegate = self;

        // Mark: Datasource
        collectionsTableView.dataSource = self;

        let url = "www.url.com"

        ClientService.getCollections(url: url) { (receivedCollections) in

            self.collections = receivedCollections
            self.collectionsTableView?.reloadData()
        }
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        return self.collections.count
    }


    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCell(withIdentifier: "collectionTableViewCell", for: indexPath) as! CustomCollectionTableViewCell

        title = self.collections[indexPath.row].name

        cell.collectionTitle.text = title


        return cell
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "displayProducts" {

            if let indexPath = collectionsTableView.indexPathForSelectedRow{
                var destinationVC = segue.destination as! CollectionViewController
                let id = collections[indexPath.row].id
                currentCollectionID = String(id)
                destinationVC.collectionID = currentCollectionID

            }      
        }
    }

}

1 个答案:

答案 0 :(得分:3)

excel.ActiveSheet.Range(range).RemoveDuplicates(Columns:=New Object() {1,2})

您正在此功能中更改页面标题 这行代码

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "collectionTableViewCell", for: indexPath) as! CustomCollectionTableViewCell

    title = self.collections[indexPath.row].name

    cell.collectionTitle.text = title


    return cell
}

更改页面标题 我将函数重写为:

 title = self.collections[indexPath.row].name