ECSliding, измените underLeftViewController
Я использую ECSliding и у меня есть эта проблема!
В моем проекте есть следующие файлы:
InitViewController (ECSlidingController)
FirstViewController (UIViewController)
SecondViewController (UIViewController)
LeftMenuViewController (UIViewController)
LeftMenuTwoViewController (UIViewController)
Я использую InitView, чтобы установить свой FirstView как вид сверху.
Сдвиг вправо показывает LeftMenuViewController, который имеет кнопку, при нажатии измените вид сверху на SecondViewController. Я хотел бы знать, возможно ли использовать LeftMenuTwoViewController в качестве underLeftViewController для SecondView. Также я хочу кнопку в LeftMenuTwo, которая меняет topView на FirstView.
Я хочу FirstView с underLeftViewController в качестве LeftMenuViewController, и SecondView с underLeftViewController в качестве LeftMenuTwoViewController. В каждом меню есть кнопка, которая изменяет topView на другое с другим underLeftViewController.
Я сделал это:
SecondViewController *second = [self.storyboard
instantiateViewControllerWithIdentifier:@"SecondTop"];
[self.slidingViewController anchorTopViewOffScreenTo:ECRight
animations:nil
onComplete:^{
self.slidingViewController.topViewController = second;
[self.slidingViewController resetTopViewWithAnimations:nil
onComplete:^{
LeftMenuTwoViewController *newUnderLeftVC = [self.storyboard
instantiateViewControllerWithIdentifier:@"LeftTwo"];
self.slidingViewController.underLeftViewController = newUnderLeftVC;
}];
}];
Но когда я нажимаю кнопку, topView запускает подпрыгивающую анимацию, сдвигаясь вправо, но никогда не возвращается снова и сразу после того, как TopView отключается, экран underLeftViewController становится пустым. Кто-нибудь знает почему?
Скачать: Мой Проект
1 ответ
Измените метод на этот:
-(IBAction)openSecond:(id)sender
{
SecondViewController *second = [self.storyboard instantiateViewControllerWithIdentifier:@"Second"];
ECSlidingViewController *slideController = self.slidingViewController;
[slideController anchorTopViewOffScreenTo:ECRight animations:nil onComplete:^{
slideController.topViewController = second;
[slideController resetTopViewWithAnimations:nil onComplete:^{
LeftMenuTwoViewController *newUnderLeftVC = [self.storyboard instantiateViewControllerWithIdentifier:@"LeftTwo"];
slideController.underLeftViewController = newUnderLeftVC;
}];
}];
}
Проблема была в том, что когда представление удаляет себя как контроллер вида сверху, вызывая self.slidingViewController
больше не возвращает действительный экземпляр (он возвращает ноль).