Я новичок в iOS Development. У меня есть некоторые требования. Я хочу проверить конкретное условие, когда выбрана другая вкладка.
Здесь приведена часть кода метода делегата UITabviewController.
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
if(Constants.isEditing!>0){
showAlert(tabBarController,viewController)
return false
}
return true
в приведенном выше коде, показывать предупреждение будет показано диалоговое окно оповещения с Yes
и No
Кнопка. когда пользователь нажимает yes
, пользователь может переключать вкладку.
пример:
Существуют следующие вкладки.
Search
Message
Profile
Settings
Теперь я нахожусь в разделе Профиль и редактирую свой профиль. когда я нажимаю на сообщение или любую другую вкладку, она переходит на другую вкладку. хотя я редактирую свой профиль.
, поэтому все введенные мной данные потеряны. поэтому я поместил одну переменную stati c в UITabViewController и увеличил число, когда пользователь вводит что-то в текстовое поле редактирования профиля. Итак, в приведенной выше функции вы видите, Constants.isEditing > 0
означает, что мы должны показать диалоговое окно с предупреждением, и если пользователь выбрал кнопку yes
, значит, я установил isEditing на 0 и разрешил пользователю сообщение go или любую другую вкладку.
, если пользователь выбрал No
, мы разрешаем пользователю находиться на том же экране.
по этому требованию Любой, пожалуйста, помогите мне решить эту проблему. ? Помощь будет оценена.
РЕДАКТИРОВАТЬ:
Итак, здесь функция tabBarController вызывается, когда я нажимаю на вкладку settings
. Фактическая функциональность этой функции: попросите пользователя нажать settings
. Здесь я сказал false
системе и показал диалоговое окно с предупреждением.
Итак, он показывает AlertDialog с кнопкой Yes
No
. Это нормально. Но когда пользователь выбирает Yes
, мы не можем перейти на вкладку Settings
. потому что у нас нет ссылок, по которым щелкнула вкладка Settings
. Итак, он все еще на этом экране.
Надеюсь, описание ясно объясняет. Обновите меня, если я что-то пропустил.