Переупорядочение контроллеров просмотра в UITabBarController, все они определены в раскадровке
Я бы хотел изменить порядок контроллеров представлений, прикрепленных к UITabBarController, в моей раскадровке, не отключая все контроллеры представлений и повторно подключая их в нужном порядке.
Мой вопрос: Можно ли это сделать только через интерфейс раскадровки IB?
Обсуждение
Я ищу некоторую панель инспектора, где я могу перемещать элементы вверх и вниз в этом списке контроллеров представлений, который передает свойство viewControllers
в UITabBarController
.
![several view controllers linked to tab bar controller]()
У меня много вкладок, поэтому я надеюсь, что не придется отключать все и снова подключаться, просто чтобы изменить порядок.
Я даже попытался изменить значение тега на элементе Bar в инспекторе, но это значение также было проигнорировано во время выполнения (я считаю, что оно предназначено для идентификации, а не для заказа).
![Tag set on Bar Item]()
Ответы
Ответ 1
![enter image description here]()
вы можете просто перетащить и направить их с помощью мыши в раскадровку. он по-прежнему работает в версии 4.5.1
ИЗМЕНИТЬ
Возможно, вам нужно перенести представление раскадровки в "Исходный код" и вернуться назад, прежде чем вы сможете перетащить. щелкните правой кнопкой мыши файл раскадровки и выберите "Открыть как" → "Исходный код", а затем снова "Открыть как" → "Конструктор интерфейсов - раскадровка iOS". это должно сделать трюк.
ИЗМЕНИТЬ
Больше не работает в Xcode 4.5.2!
ИЗМЕНИТЬ
В Xcode 5 preview 5 он работает снова. Кажется, Apple исправила эту ошибку в новом verion
![enter image description here]()
Ответ 2
Если drag-n-drop не работает, возникает другое обходное решение. В Storyboard я просто удалил все отношения с UITabBarController и переподключил их в правильном порядке.
Ответ 3
XCode 4.5.1
Не эмпирический ответ, но у меня была такая же проблема.
Я открыл раскадровку как исходный код, переупорядочил
Затем открыли раскадровку в качестве Interface Builder - iOS Storyboard
Ничего не изменилось... но
Затем я мог бы перетащить вкладки
Ответ 4
У меня была такая же проблема.
Если я поместил новый контроллер просмотра или новый контроллер навигации в раскадровку, перетаскивание не работало в контроллере панели вкладок.
Я закрыл и снова открыл Xcode, и перетащить назад снова удался.
Ответ 5
У меня была эта проблема в Xcode 4.6.3, но я только что открыл способ изменить порядок моих вкладок. Не уверен, что это относится ко всем, но в меню навигации в левой части раскадровки, если я разворачиваю TabBarController, он показывает элемент Tab Bar. Как только я нажму на панель вкладок, я тогда смогу перетащить значки вкладок в построителе интерфейса так, как я ожидал бы.
Ответ 6
Вы можете изменить порядок, перейдя в исходный код и найдите сцену и отредактируйте источник. Вы можете найти строку вкладок и добавить код. (щелкните правой кнопкой мыши на раскадровке в навигаторе проекта и выберите "Открыть как... Исходный код" ). Затем вернитесь в "Ракурс" (щелкните правой кнопкой мыши по раскадровке в навигаторе проекта и выберите "Открыть как...". "Интерфейс Builder-IOS" Раскадровка)
Ответ 7
После добавления нового контроллера представлений Xcode 4.6.2 не позволит мне переупорядочивать вкладки. Просто щелкнув по одному из моих файлов исходного кода, затем щелкнув по файлу раскадровки, этот трюк и я могу снова изменить порядок вкладок.