2016-06-28 8 views
-1

В документации говорится, что при нажатии на выбранный элемент вызывается метод didSelectViewController для UITabBarControllerDelegate.didSelectViewController поведение при повторном нажатии/нажатии на панели активных вкладок

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITabBarControllerDelegate_Protocol/index.html#//apple_ref/occ/intfm/UITabBarControllerDelegate/tabBarController:didSelectViewController:

в ИО v3.0, а затем, контроллер панели вкладок вызывает этот метод независимо от того, изменилась ли выбранный контроллер представления. Кроме того, он вызывается только в ответ на пользовательские краны в панели вкладок и не вызывается, когда ваш код изменяет содержимое панели вкладок программным путем.

Но, согласно моим испытаниям, это не (тестирование на iOS9), метод вызывается только при изменении активного контроллера представления. Так что я делаю что-то неправильно? Есть ли способ обнаружить нажатие на элемент активной панели вкладок?

+0

Что? В документе говорилось, что 'In iOS v3.0 и более поздние версии, контроллер панели табуляции вызывает этот метод, независимо от того, изменился ли выбранный контроллер просмотра'. И ваше тестирование соответствовало документу! – Proton

+0

«независимо от того, изменен ли выбранный контроллер просмотра» означает, что он вызывается только при изменении регулятора вида? – jptsetung

+0

Извините, моя ошибка :( – Proton

ответ

0

OK, причина метод didSelectViewController не был вызван, когда она была такой же, как для выбранного контроллера зрения, было то, что у меня был другой метод делегата реализован так:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController { 
    return (viewController != tabBarController.selectedViewController); 
} 
Смежные вопросы