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];
}