Я создал свой собственный контроллер разделенного вида для iPad.Моя главная цель в создании моего собственного состоит в том, чтобы позволить пользователю открывать / закрывать левую боль по желанию.У меня проблема в том, что я не могу найти способ заставить контроллеры вида испытывать боль, необходимую для анимации изменений.Я анимирую представления в моем контроллере разделенного представления, но все остальные контроллеры вспомогательного представления в правой панели не анимируют свои представления.Я не переключаю представления, поэтому я не могу использовать ни один из этих методов, и я не меняю ориентации, поэтому эти методы отсутствуют (хотя я все же попробовал их, но это не сработало).Кто-нибудь знает способ сделать это?
В настоящее время мой код для запуска анимации:
- (void) setShowLeftPane:(BOOL)showLeftPane{
if (_showLeftPane != showLeftPane){
_showLeftPane = showLeftPane;
//Alert viewcontrollers and perform animation
if (showLeftPane) [_leftController viewWillAppear:YES];
else [_leftController viewWillDisappear:YES];
[UIView animateWithDuration:.25 animations:^{
[self layoutViews];
[_rightController viewWillLayoutSubviews];
} completion:^(BOOL fin){
[_rightController viewDidLayoutSubviews];
if (_showLeftPane) [_leftController viewDidAppear:YES];
else [_leftController viewDidDisappear:YES];
}];
//Switch out the appropriate pane button view
[_showLeftPane ? _openLeftPane : _closeLeftPane removeFromSuperview];
[self.view addSubview:_showLeftPane ? _closeLeftPane : _openLeftPane];
}
}
В настоящее время мой контроллер представления правой панели является UINavigationController, поэтому я имею делос классом акций.Я рассмотрел вопрос о добавлении метода категории viewWillAnimateSubviewLayoutWithDuration:(NSTimeInterval)interval
в UINavigationController, который будет циклически проходить тестирование контроллеров представления для / отправки того же метода в его контроллеры представления, чтобы они могли выполнять свои анимации, но это не совсем идеально, особенно если есть способиспользуйте стоковые методы.
Я подумываю написать свой собственный NavigationController, но это большая работа, которую я не хочу делать, если мне не нужно.