Я хочу изменить вкладку на панели вкладок в зависимости от выбора оповещения (Предупреждение - вы уверены, что хотите покинуть эту страницу. СЛУЧАЙ - Да - изменить представление согласно выбранной панели вкладок. СЛУЧАЙ - Нет - Ничего не делать Оставайтесь на той же странице (индекс табуляции).
Я пытался использовать метод tabbarcontrollerdelegate didselect и должен выбрать, но не смог заставить его работать.
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
var decision : Bool?
let alert = UIAlertController(title: "You are in middle of a Quiz", message: "Do you want to end the Quiz in between !", preferredStyle: UIAlertController.Style.alert)
alert.addAction(UIAlertAction(title: "No", style: UIAlertAction.Style.default, handler: { _ in
// do nothing.
decision = false
}))
alert.addAction(UIAlertAction(title: "Yes",
style: UIAlertAction.Style.default,
handler: {(_: UIAlertAction!) in
decision = true
// go to clicked tabbar view
}))
self.present(alert, animated: true, completion: nil)
return decision!
}
Этот код не работает, потому что, прежде чем перейти к выбору оповещений, didselect возвращает bool (в вышеописанном случае происходит сбой). Что может быть альтернативой решению этой проблемы, т. Е. При щелчке на панели вкладок представление должно измениться только после того, как пользователь подтвердит, что он хочет покинуть текущую страницу (посредством действия предупреждения).