У меня большой проект, где клиент хочет настроить табуляцию. Я выбрал BCTabBarController для замены UITabbarController. После нескольких исправлений он работает нормально, но после тестирования я нашел одну ошибку:viewWillAppear не вызван в BCTabBarController
ViewWillAppear, ViewDidAppear, ViewWillDisappear ViewDidDisappear methods not called in selectded view controller and not called into BCTabBarController.
This problem appears after BCTabBarController show modal controller from instance of BCTabBarController class.
Я posted issue to github repo из briancolins, но до сих пор нет ответа.
Вот часть кода, где звоню настоящий модальный контроллер представления:
- (void) presentProperlyModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated
{
if ([[self controllerToPresentModalFrom] respondsToSelector:@selector(presentViewController:animated:completion:)]) // For iOS 5
{
[[self controllerToPresentModalFrom] presentViewController:modalViewController animated:animated completion:^(){}];
}
else
{
[[self controllerToPresentModalFrom] presentModalViewController:modalViewController animated:animated];
}
}
-(void) dismissProperlyModalViewControllerAnimated:(BOOL)animated
{
if ([self respondsToSelector:@selector(dismissViewControllerAnimated:completion:)]) {
[self dismissViewControllerAnimated:animated completion:^(){}];
}
else
{
[self dismissModalViewControllerAnimated:YES];
}
}
UPDATE: этот вопрос не воспроизводится в iOS5, но присутствует в прошивкой 4.3
Я понял. Это была ошибка в BCTabBarController. Был массив childViewController. Если он был представлен - viewwillAppear не отправляет. – Yanny
Спасибо! Вместо этого я использую ответы на селектор – Yanny