Swift: кнопка «Назад» отображается в раскадровке, но не в симуляторе - PullRequest
0 голосов
/ 24 марта 2019

Кнопка «Назад» отображается в StoryBoard, но не в симуляторе.

Я добавил последовательность от TableViewController до DetailViewController для передачи данных. На раскадровке автоматически отображается кнопка «Назад» на DetailViewController, но при запуске симулятора кнопка не отображается.

Это моя раскадровка:

enter image description here

При ближайшем рассмотрении TableViewController и DetailViewController: enter image description here

Но в моем симуляторе кнопка не отображается:

enter image description here

Иерархия всего проекта:

enter image description here

Я хочу знать, где настроить кнопку «назад» (в моем случае?) Или вместо этого удалить кнопку (не позволяя ей показываться в раскадровке), чтобы я мог создать ее самостоятельно.

Код моего перехода в моем TableViewController:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    performSegue(withIdentifier: "showDetailView", sender: indexPath)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    switch (segue.destination, sender) {
    case (let controller as DetailViewController, let indexPath as NSIndexPath):
        controller.receivedName = storeList[indexPath.row].name!
        controller.receivedDesc = storeList[indexPath.row].desc!
        controller.receivedRate = storeList[indexPath.row].rate
        controller.receivedUrl = storeList[indexPath.row].url!

    default:
        print("unknown segue")
        break
    }
}

1 Ответ

4 голосов
/ 24 марта 2019

Ваш начальный контроллер представления в раскадровке на самом деле является TabelViewController (вы можете видеть, что на нем есть стрелка).

Вот почему при запуске сцены отображается TableViewController, но он не встроен в навигацию, поскольку контроллер навигации никогда не создавался.

Просто измените начальный контроллер представления на контроллер навигации или любой другой перед контроллером навигации, который содержит TableViewController.

Вы можете просто перетащить стрелку, чтобы изменить начальный контроллер в раскадровке

...