У меня есть следующая функция, которая идентифицирует контроллер навигации, встроенный в контроллер панели вкладок, и выдвигает контроллер представления профиля.Эта функция работает, но я хочу сделать некоторую проверку, которая препятствует тому, чтобы он представлял контроллер представления профиля во второй раз, если эта функция вызывается из выдвижного меню, в то время как контроллер представления профиля является последним выдвинутым контроллером представления.Вот функция:
private func toProfile() {
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate,
let tbc = appDelegate.window?.rootViewController as? TabBarController,
let nav = tbc.viewControllers?[tbc.selectedIndex] as? UINavigationController else { return }
let profileVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "profileVC")
nav.pushViewController(profileVC, animated: true)
delegate?.dismissSettingsVC()
}
Я пытался:
if nav.viewControllers.last == profileVC {
print("Do nothing")
} else {
nav.pushViewController(profileVC, animated: true)
}
, но это никогда не говорит, что оба равны.Как сделать оператор if, чтобы проверить, был ли последний нажатый контроллер представления profileVC?