Стандартный или Forward Segue можно щелкнуть в построителе раскадровки, а стиль можно изменить на «Пользовательский». На этом этапе можно указать класс Segue. Однако это невозможно для Unwind Segue. В Unwind Segues указывается только идентификатор и действие. Это объясняет, что их тип «Unwind Segue», но есть ли способ создать пользовательский класс Segue для этих Unwind Segues?Пользовательский класс Segue для размотки Segue
ответ
Я обнаружил, что для того, чтобы реализовать пользовательские размотать SEGUE я должен был подкласс UINavigationController и переопределить этот метод следующим образом:
-(UIStoryboardSegue *)segueForUnwindingToViewController:(UIViewController *)toViewController fromViewController:(UIViewController *)fromViewController identifier:(NSString *)identifier {
UIViewController *controller = self.topViewController;
UIStoryboardSegue *unwindSegue;
if ([controller isKindOfClass:[YourClassThatNeedsCustomUnwind class]]) {
unwindSegue = [controller segueForUnwindingToViewController:toViewController fromViewController:fromViewController identifier:identifier];
}
if (unwindSegue) {
return unwindSegue;
} else {
return [super segueForUnwindingToViewController:toViewController fromViewController:fromViewController identifier:identifier];
}
}
Тогда в UIViewController, где обычай размотать переход требуется переопределить этот метод:
- (UIStoryboardSegue *)segueForUnwindingToViewController:(UIViewController *)toViewController fromViewController:(UIViewController *)fromViewController identifier:(NSString *)identifier {
YourCustomUnwindSegue *segue = [[YourCustomUnwindSegue alloc] initWithIdentifier:identifier source:fromViewController destination:toViewController];
return segue;
}
Наконец в пользовательский класс UIStoryboardSegue просто переопределить «- (недействительными) выполнить:» метод и положить все анимации (или в моем случае отсутствия анимации) вам нужно.
- (void)perform
{
UINavigationController *containerVC = (UINavigationController*)[self.destinationViewController parentViewController];
[containerVC popToViewController:self.destinationViewController animated:NO];
}
Надеюсь, что это поможет кому-то.
Примечание: я реализовал это в iOS8 – CodenameDuchess
Вы можете определить протокол ViewControllerWithCustomUnwindProtocol с segueForUnwindingToViewController: fromViewController: identifier: определено на нем. Любой ViewController, требующий настраиваемого раскручивания, просто реализует этот протокол (легко для VC, так как метод уже существует в базе). Затем вашему подклассу UINavController нужно только проверить реализацию протокола и будет работать для всех пользовательских VC без модификации кода (более развязано). – Joshcodes
Спасибо Joshcodes, когда я получу свободный момент, я собираюсь вернуться назад и посмотреть, как это реализовать. – CodenameDuchess
Возможно, вы хотите взглянуть на статью http://dadabeatnik.wordpress.com/2013/10/13/custom-segues/. Он подробно объясняет пользовательские варианты.
Я следил за объяснениями на пользовательских раскручивающих сегментах, и пока все в порядке. Но вы должны, вероятно, включить эти части в этот ответ ... – Jonny
Страница больше не доступна –
- 1. Пользовательский режим размотки segue для отображения анимации
- 2. iOS Обнаружение размотки segue из push segue
- 3. textFieldShouldBeginEditing вызывается после размотки segue
- 4. XCode пользовательский класс segue застрял
- 5. Делегат/размотки Segue в NavigationController Назад Кнопка
- 6. Unwind Segue with Show Segue
- 7. Пользовательский Segue с UIViewAnimationOptionTransitionCurlDown
- 8. Пользовательский Segue не анимируется
- 9. Unwind Segue для UINavigationController
- 10. Пользовательский segue в iOS
- 11. пользовательский push segue анимация
- 12. Показ предупреждения после размотки segue останавливает сеанс. Как я могу убедиться, что предупреждение показывается после завершения размотки segue?
- 13. Пользовательский Segue Uncaught Exception Thrown
- 14. разматывает обычая SEGUE не запускается
- 15. Пользовательский режим книжного режима Segue
- 16. Segue перестает работать после первого segue
- 17. Swift - создать пользовательский push segue
- 18. Пользовательский Segue не воспроизводит звук
- 19. Передача строки через размотки Segue и/или dismissViewController SWIFT
- 20. Использование UISearchController в UITableView с размотки Segue на клеточной селекции
- 21. unind segue and dealloc
- 22. Нежелательно анимация с размотки Segue с контроллерами зрения вложенной модальных
- 23. В результате размотки Segue в Clear Clear Bar
- 24. результат размотки segue разный с основными и подробными видами
- 25. Отправка данных обратно на предыдущий контроллер с помощью размотки segue?
- 26. Как узнать, какой segue называется пунктом назначения в режиме размотки?
- 27. размотка segue или вперед segue?
- 28. unind segue vs. popViewControllerAnimated
- 29. segue не распознает идентификатор segue
- 30. Programmatically unwind segue
http://www.bencz.com/hacks/2014/02/07/custom-ios-segues-in-xcode-5/ – Fattie