ECSlidingViewController с функцией Push and Unwind Segue

Я использую ECSlidingViewController с раскадровками. ECSlidingVC мой корневой (стартовый) контроллер. Мое левое меню TableView со статическими ячейками, и мой TopViewController это навигационный контроллер Я хочу иметь один NavigationController для всего моего приложения.

Из моего левого меню я не могу использовать сегменты push или unwind, хотя я понимаю эту часть. я могу использовать только ECSlidingSegue какие изменения topviewController из ECSlidingVC и который разрушает мой контроллер навигации и его стек.

я хочу иметь возможность вернуться от пункта меню ВК к предыдущему ВК в моем главном контроллере навигации. скажем в принципе я хочу ECSlidingVC не меняться topViewController но подтолкнуть пункт назначения viewController к моему источнику.topViewController,navigationController,

Также мне нужно использовать раскручивающиеся сегы с моими пунктами меню. Мне нужно вернуться к ВК в моем главном контроллере навигации.

я осмотрел ECSlidingSegue исходный код и все, что он делает, это заменить topViewController,

есть ли встроенный метод (или segue) в ECSlidingViewController для проталкивания (или разматывания) ВК в источник.topViewController,navController или мне нужно реализовать пользовательский переход сам?

2 ответа

Решение

Я думаю, что лучший путь для вас - это реализовать собственный переход самостоятельно. Что-то вроде ECSlidingNavigationSegue, который будет искать ваши topViewControllerзатем проверьте, является ли это UINavigationController а затем нажмите destinationController к этому.

Это в основном то же самое perform метод как ECSlidingSegue, но с этой функцией подталкивания контроллера к topViewController вместо того, чтобы заменить его.

Удачи!

В случае, если кто-то не нашел ответа, я сделал это таким образом.

1- #import "UIViewController+ECSlidingViewController.h" к вашему menuViewController 2- Установите для stroboardID вашего destinationViewController значение "someID" 3- При запуске какого-либо действия в бэкэнде используйте этот код:

    if(self.slidingViewController.currentTopViewPosition == ECSlidingViewControllerTopViewPositionCentered){
        [self.slidingViewController anchorTopViewToRightAnimated:YES];
    }
    else{
        self.slidingViewController.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"someID"];
        [self.slidingViewController resetTopViewAnimated:YES];
    }
Другие вопросы по тегам