почему переключатель контроллера панели вкладок не работает, когда мы пытаемся нажать новый контроллер представления после переключения

Я переключаю панель вкладок с помощью следующей команды

self.tabbarcontroller.selectedIndex=0;

это работает, но если я нажимаю другой контроллер представления, то переключение панели вкладок не происходит, но если я вручную выбираю первый контроллер представления, я вижу, что там находится нажатый контроллер представления.

но почему переключение не происходит только тогда, когда сверху нажимается другой контроллер представления.

К вашему сведению: нет никаких проблем с тем, как я нажимаю контроллер представления поверх контроллера вида сверху, потому что я попытался прокомментировать код для переключения элемента панели вкладок и его нажатия без каких-либо проблем.

Любая помощь приветствуется.

--

Обновлять:

Вот мой код для нажатия контроллера представления

- (UINavigationController*) rootNavigationController {
    UITabBarController* tabBarController = (UITabBarController*) [[self window] rootViewController];

    return  (UINavigationController*) [tabBarController selectedViewController];
}

  [rootNavigationController pushViewController:newViewController animated:true];

comment
Не могли бы вы опубликовать еще немного кода для проверки?   -  person Gulliva    schedule 06.09.2018
comment
Я просто добавляю элемент управления представлением в этот корневой контроллер представления после переключения вкладки   -  person Shiva    schedule 06.09.2018


Ответы (1)


Та же проблема случилась со мной раньше. Индекс как-то меняется. Чтобы справиться с такими ситуациями, лучше использовать делегат didSelectItem и сохранить текущий элемент как контроллер навигации. Поэтому нет необходимости использовать [tabBarController selectedViewController]. Ссылка: UITabBar (Controller) - получить индекс прослушанных?

person Hari Prasath Balachandran    schedule 06.09.2018