Я хочу написать некоторый код для извлечения из текущего контроллера представления обратно в корневой контроллер представления. Как ни странно, я нашел множество ответов по этому поводу со всевозможным синтаксисом. (Я предполагаю, что старые ответы в Objective C или другой версии Swift...) Вот самый простой синтаксис, который сейчас работает у меня в моем AppDelegate:
let navigationViewController = self.window?.rootViewController as! UINavigationController
[navigationViewController .popToRootViewController(animated: true)]
Я зашел так далеко, просмотрев этот ответ: https://stackoverflow.com/a/23027260/8887398 Его синтаксис пренебрегал отличается, что, я думаю, является старым синтаксисом, так как он был с 2012 года, поэтому мне пришлось его немного изменить, но он работает с моим кодом выше.
Вопрос: я не совсем понимаю, что происходит во второй строке кода. Конечно, я понимаю, что он возвращается к корневому контроллеру представления, но я вообще не понимаю синтаксиса. Больше всего сбивает с толку то, что код окружен парой квадратных скобок [ ], которые я вообще не понимаю. Затем popToViewController начинается с точки '.', которая отличается от ответа, который я связал. Я привык использовать '.' для доступа к свойствам объекта, но здесь он просто используется отдельно, без чего-либо слева от него.
Этот код, кажется, работает правильно для меня, но какие бесчисленные версии синтаксиса и способы возврата к корневому контроллеру представления я нашел в Интернете, я понятия не имею, правильно ли то, что я делаю, или как это работает в все. Все, что я знаю, это «это работает прямо сейчас». Пожалуйста, помогите мне понять этот код.
[]
вокруг вызова метода. - person Dávid Pásztor   schedule 25.02.2019