проблема с кастом между ViewController' ом

Суть такая пытаюсь добавить возможность редактирования с одного ViewController на другой. Но при попытке это сделать компилятор вот так вот ругается "Could not cast value of type 'EmojiReader.NewEmojiTableViewController' (0x10993f688) to 'UINavigationController' (0x7fff86f31638)". Не пойму чем ему не понравилась строка let navigationVC = segue.destination as! UINavigationController

Иерархия выглядит так:

введите сюда описание изображения

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    super.prepare(for: segue, sender: sender)
    guard segue.identifier == "editEmojiScreen" else { return }
    let indexPath = tableView.indexPathForSelectedRow!
    let emoji = objects[indexPath.row]
    let navigationVC = segue.destination as! UINavigationController
    let newEmojiVC = navigationVC.topViewController as! NewEmojiTableViewController
    newEmojiVC.emoji = emoji
    newEmojiVC.title = "Edit"
}

Ответы (2 шт):

Автор решения: schevgeny

у вас видимо класс UINavigationController не унаследован от UINavigationController к которому вы хотите привести

→ Ссылка
Автор решения: Роман

Решение было просто, оказывается скасить он не могу, так как данный segue уже был виден в NewEmojiTableViewController без дополнительного перехода на UINavigationController (почему в данном swift 5.3 эта работает так не понятно, как было раньше не работает, хотя выглядит довольно логично) теперь код выглядит так

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    super.prepare(for: segue, sender: sender)
    guard segue.identifier == "editEmoji" else { return }
    let indexPath = tableView.indexPathForSelectedRow!
    let emoji = objects[indexPath.row]
    let navigationVC = segue.destination as! NewEmojiTableViewController
    navigationVC.emoji = emoji
    navigationVC.title = "Edit"
}

Правда экран работает не много не так как хотелось (должен по типу present modally, а он открывается на новом экране)

→ Ссылка