Заголовок панели навигации изменяется при прокрутке - PullRequest
0 голосов
/ 10 января 2019

Привет, я уже давно искал в Интернете эту проблему, но, похоже, в моем 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 голосов
/ 10 января 2019
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

меняет заголовок страницы Я переписал функцию для вас к этому:

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

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

    let temp = self.collections[indexPath.row].name

    cell.collectionTitle.text = temp


    return cell
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...