У меня есть 4 ViewControllers в моей раскадровке. Я хочу, чтобы все они имели доступ к моему ViewController «Настройки» с помощью функции performSegue. Возможно ли, чтобы для этого выполнялся ONE segue, вместо ctrl + перетаскивание из каждого ViewController в мой «Настройки» ViewController?One segue, чтобы управлять ими все
ответ
Нет его невозможно с помощью одного сеанса. Вам нужно 4 разных segues от 4 различных ViewControllers
. Но вы можете сделать это программно.
сделать расширение для UIVIewController
extension UIViewController
{
func showSettingsScreen()
{
let storyBoard = UIStoryboard(name: "YourStoryBoardName", bundle:nil)
let settingsScreen = storyBoard.instantiateViewControllerWithIdentifier("YourSettingsViewControllerID")
self.navigationController?.pushViewController(settingsScreen, animated: true)
}
}
Теперь вы можете позвонить showSettingsScreen()
от любого из контроллеров зрения (Убедитесь, что этот вид контроллер имеет навигационный контроллер).
Это может сработать. Я дам ему один раз на компьютере. –
Я действительно не думаю, что есть способ сделать это. U должно соединить ур SettingsViewController все ваши 4 View Controllers, добавьте SEGUE, и определить идентификатор SEGUE, который используется в
prepareForSegue:sender:
or
shouldPerformSegueWithIdentifier:sender:
методов. U может получать доступ через эти идентификаторы. Если вы найдете «ctrl + перетаскивание из каждого ViewController в« Настройки »ViewController« tasky, вы также можете выбрать навигационный контроллер. U просто нужно встроить навигационный контроллер в свою раскадровку и определить идентификатор раскадровки для каждого контроллера просмотра, и все готово. Просто используйте идентификатор раскадровки для контроллера представлений, чтобы создать экземпляр, и вам хорошо идти.
ViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
[self.navigationController pushViewController:vc animated:YES];
Кроме назначения идентификатора раскадровки, вам не нужно беспокоиться о раскадровке, не использовать Ctrl + drag.
Я думал о еще одном элегантном решении, то есть с использованием вида контейнера. Вы можете нажать кнопку, чтобы переключаться, SettingsViewController как общий, в вашем контроллере просмотра контейнера, показывая каждый ViewController. happy Coding ..
Вы не можете этого сделать. Сег имеет только один источник и один пункт назначения. Вы можете программно создать свои настройки ViewController
и отобразить его либо с помощью нажатия, либо с помощью текущего. То, о чем вы должны думать, это то, почему вы должны идти в настройки из стольких мест. Это может быть признаком плохой конструкции и дублирования кода. Обычно приложения имеют только одну такую кнопку/действие, к которой можно получить доступ с нескольких экранов (с помощью какой-то реализации вида контейнера) или только с одного экрана.
Существует один способ сделать это. Создайте контроллер корневого представления и соответствующее представление, которое содержит один встроенный вид. Добавьте свой segue в этот корневой контроллер. Затем в вашем приложении вы переключаетесь на другие контроллеры представлений, используя стандартные методы дочерних контейнеров. Это в значительной степени концепция использования UINavigationControllers.
Одним из преимуществ этого является то, что если вы хотите иметь общие элементы, которые видны для всех контроллеров, вы можете добавить их в свой корневой контроллер.
Но все зависит от того, чего вы пытаетесь достичь.
- 1. One Upstart, чтобы управлять ими все
- 2. Контроллер One View, чтобы управлять ими всеми?
- 3. один симпатичный принтер «чтобы управлять ими все»
- 4. Одна функция, чтобы управлять ими все
- 5. Один XSL, чтобы управлять ими все
- 6. Одно раскрывающееся меню, чтобы управлять ими все
- 7. один проект JB java, чтобы управлять ими все
- 8. Ширина столбца Flex DataGrid: один столбец, чтобы управлять ими всеми?
- 9. Одно регулярное выражение, чтобы управлять ими всеми (эффективно)?
- 10. Один стол, чтобы управлять ими, или тысячами меньше?
- 11. Запустить несколько subprocess.call и управлять ими
- 12. Одна команда для каждого состояния или одна команда, чтобы управлять ими все
- 13. Array of TButtons - как управлять ими
- 14. One Way Segue в tvOS
- 15. один XSLT, чтобы управлять им все
- 16. Как обрабатывать репозитории пакетов Debian в Python и управлять ими?
- 17. Как создавать сеансы и управлять ими на C++?
- 18. iOS UIStepper & NSUserDefaults - Как управлять ими вместе и использовать двойной
- 19. PHP-кодирование - класс для каждого представления или один класс, чтобы управлять ими всеми?
- 20. Одна база, чтобы управлять ими всеми. Одна база для их всех и в темноте связывает их
- 21. При работе с несколькими проектами TFS мне нужен родительский командный проект, чтобы управлять ими?
- 22. Массив объектов суперкласса. Как управлять ими как подклассами?
- 23. Какие разрешения я должен предоставить IAM, чтобы он мог создавать экземпляры и управлять ими?
- 24. iOS - Как управлять видом анимации в развязке Segue?
- 25. Запуск и управление ими
- 26. Есть ли кросс-платформенный GUI Toolkit, который не следует за одним источником, чтобы управлять ими всей концепцией?
- 27. Как найти несколько значений, сохранить их, а затем управлять ими в VBA?
- 28. ими программным Перезарядка C# Проект
- 29. TCL: Открыть файл, извлекать данные, копировать файлы и управлять ими впоследствии
- 30. Учитывая форму с несколькими кнопками отправки, могу ли я управлять ими индивидуально?
Если вы хотите использовать segue, тогда от каждого источника до места назначения должен быть отрыв. В качестве альтернативы вы можете просто создать экземпляр диспетчера представлений настроек и нажать/представить его без использования segue – Paulw11
Я боялся этого ответа. Тот факт, что мне приходится перетаскивать сегменты из всех четырех контроллеров в один и тот же, является уродливым, но если мне нужно будет –