NavigationController, вложенный в анимационную ошибку TabController - PullRequest
0 голосов
/ 07 ноября 2018

Я изо всех сил стараюсь объяснить, что происходит.

Я обновил XCode до Версия 10.1 (10B61)

И iOS на моем iPhone и симуляторе v 12.1


Мое приложение имеет TabController с 5 вкладками.

First: Posts
Fifth: Profile Posts

Они встроены в контроллер навигации (на случай, если кто-то нажимает на кнопку комментариев)

Итак. Я заметил, что если я запускаю свое приложение и нажимаю на комментарии, оно странным образом выталкивает этот vc на экран, а затем щелкает назад, просто «ударяя» назад. Также слайд назад не работает.

Однако, если я сначала переключаю вкладки, то все работает нормально.

VIDEO:

https://www.youtube.com/watch?v=fgS3j21L8Js

Как вы видите на видео, все нормально после перехода на Профиль сообщений + назад.

ОБНОВЛЕНИЕ 1:

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

запрашиваемый код:

func commentsButtonTapped(sender: UIButton) {
        let touchPoint:CGPoint = sender.convert(CGPoint.zero, to:self.tableView)
        if let indexPath = tableView.indexPathForRow(at: touchPoint) {
            openDetails(indexPath: indexPath, shouldShowKeyboard: false)
        }
    }
func openDetails(indexPath: IndexPath, shouldShowKeyboard : Bool) {
        if (self.tableView.cellForRow(at: indexPath) as? WorldMessageCell) != nil {

            let storyboard = UIStoryboard(name: "Additional", bundle: nil)
            let vc = storyboard.instantiateViewController(withIdentifier: "DetailsViewController") as! DetailsViewController

            vc.postId = PostIds.shared.nearby.ids[safe: indexPath.row]
            vc.shouldShowKeyboard = shouldShowKeyboard

            self.navigationController?.pushViewController(vc, animated: true)
        }
    }

ОБНОВЛЕНИЕ 2:

Решил проблему, заставив TabController переключаться между вкладками.

override func viewDidAppear(_ animated: Bool) {

        self.selectedIndex = 1
        self.selectedIndex = 0

    }

Но это не так, как должно работать ..

ОБНОВЛЕНИЕ 3:

Я проверил это, если я сделаю navigation controller -> vc начальным vc (так что без контроллера вкладок) все работает нормально.

Но как только навигационный контроллер вложен во вкладку, это происходит.

Я сделал новый проект для проверки, если это ошибка конкретной версии, но нет, там все отлично работает. Так что проблема должна быть с моим приложением.

Что может вызвать такую ​​проблему (в видео)?

1 Ответ

0 голосов
/ 08 ноября 2018

Ооо .. Я нашел проблему и ошибку:

Так что если вы вложили navigation controllers в tab controller, который вызывает его функцию viewDidLoad(), то у контроллера навигации будут проблемы.

Код, который мне пришлось полностью удалить:

override func viewDidAppear(_ animated: Bool) {
        // here i had some code ... /

    }

Теперь все работает ..

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