Перестановка замовлення контролера панелі вкладок у StoryBoard


166

У моєму додатку iPhone у мене є контролер панелі вкладок з 4 зв'язками до 4 різних контролерів таблиці. Чи є спосіб змінити порядок відносин у StoryBoard графічно? Я не можу знайти спосіб це зробити, і я впевнений, що мені щось не вистачає!


Відповіді:


255

У 4.5 збережіть розкладочку після додавання контролера, переключіться на інший файл, а потім назад на дошку розгортки, і перетягування вкладки має працювати знову.


45
Перетягування вкладок! Гаразд, я навіть не знав, що ми можемо перетягнути вкладки. Не дуже інтуїтивно зрозуміло, оскільки вкладки не вибираються ...
Pierre de LESPINAY

1
Якщо вам набридло тикати на інтерфейс Xcode за допомогою перемикача вкладки / закриття, просто подивіться на відповідь JannieT. Це швидко і просто.
Шестко Саез

Неінтуїтивно, але це працювало і для мене в Xcode 7.
zeeple

Якщо ви не бачите елементів для перетягування, це може бути тому, що ви ще не встановили піктограму. Я виявив, що він не відображається, поки я не встановив іконки!
Брайан

1
приємно :) навіть не знав, що це можна перетягнути
Amr Angry

133

Ви можете просто переупорядкувати замовлення, перетягнувши та опустивши піктограми в контролер панелі вкладок


4
Якщо ви використовуєте власні вкладки, ви все одно можете перетягувати їх, щоб змінити порядок, навіть якщо на Tab Bar Controllerсцені показано сіру смугу, елемент рядка все ще є. Це особливо непомітно, коли всі ваші позиції - це спеціальні товари.
Джеральд

Найпростіший і зручний спосіб. Працює в Xcode 7.3.1. Свіфт 2.2
Марк Баррассо

Працює в Xcode 9 - хоча піктограми були непомітні.
Чезаре


15

Мені не вдалося перетягнути і перетягнути з XCode 4.6 (з будь-якою з згаданих комбінацій). Я вирішив це, відкриваючи панель розповідей у ​​режимі " Вихідний код ", розміщуючи вкладкуBarController та переставляючи тег seque .


У мене контролер панелі вкладок розміщений у контролері розділеного перегляду, і як результат, вкладки контролера панелі вкладок не видно на дошці розкад. Редагування вихідного коду розповіді працювало на мене. Дякую!
Скотт Гарднер

14

Я знаю, що ОП використовує конструктор інтерфейсів Xcode і просить графічно зробити це, але для розробників, які працюють з Xamarin iOS Designer, ось такий спосіб, який я використовую.

Відкрийте файл .storyboard у текстовому редакторі або за допомогою Xcode, клацніть правою кнопкою миші на елемент аркуша розкадрівки в «Навігаторі проекту» та виберіть « Відкрити як вихідний код». У XML-розгортці знайдіть <tabBarController ...>вузол. Потім я переставляю порядок сегсів у <connections>розділі:

<connections>
    <segue destination="274" kind="relationship" relationship="viewControllers" id="286"/>
    <segue id="943" destination="910" kind="relationship" relationship="viewControllers"/>
    <segue destination="147" kind="relationship" relationship="viewControllers" id="159"/>
</connections>

Шукайте destination=значення атрибуту в XML, щоб визначити, на який контролер подання вказує елемент segue.


1
Прекрасне рішення. У мене був величезний StoryBoard, і видалення та відтворення сімейства зайняло б деякий час
YYamil

10

Просто перетягніть іконки вкладки на панелі вкладок.

тобто головна панель вкладок, що належить до контролера панелі вкладок.

HTH

:: EDIT :: Отже, схоже, це не працює ... Я впевнений, що раніше.

У будь-якому випадку, найпростіший спосіб, який я знайшов, - це вийняти вкладки та додати їх назад у тому порядку, в якому ви їх хочете показати.

Сподіваюся, це допомагає.


LOL, щойно пішов на тестування, і я помилився. Вибачте. Хоча це робили і раніше.
Хвилина

Так, я думаю, що я пам’ятаю, що перетягування працювало, хоча я не впевнений у цьому! Можливо, вони щось змінили в Xcode ..
BigLex

Я просто спробував це, і це спрацювало чудово, щоб просто перетягнути вкладки в Xcode 4.5
rdelmar

@rdelmar Ви розпочали свій проект як додаток для панелі вкладок або додали контролер перегляду панелі вкладок до однієї програми перегляду?
BigLex

5
Перетягування працює, але воно стає впертим, якщо ви зробили що-небудь у розгортці перед тим, як спробувати перетягувати та опускати вкладки. Щоб виправити це, виберіть будь-який інший файл у Xcode та поверніться до вашої розкадровки. Перетягування працюватиме знову. Не потрібно закривати Xcode або повторно додавати контролери.
пам’ятки

9

Як зазначається в коментарях, перетягування в даний час не працює (Xcode 4.5) після додавання навігаційного контролера. Однак, перезапуск Xcode після додавання контролера, здається, знову і знову працює.


8

XCODE 10.1: Збільшити розмір дошки. Просто перетягніть елементи вкладки. (Жодної зміни немає)


2
Як ти думав спробувати це? 😃 Блискуче! 👏
GarySabo

7

Якщо ви відкриєте дошку розкадрування як "перегляд вихідного коду", а потім закриєте її, відкрийте її як перегляд IB, здається, виправити помилку.


Це працювало для мене (Xcode 8.1), я зміг нарешті перетягнути, щоб переупорядкувати після відкриття аркуша розкад у поданні вихідного коду.
Undrea

7

Щоб додати метод перетягування, який надає кожен. Я опублікував це як відповідь, щоб я міг включати зображення. Пробували на Xcode 7.3

Якщо ви користуєтеся власноруч tab bar item, ви все одно можете перетягувати та відкидати, щоб змінити порядок, навіть якщо на Tab Bar Controllerсцені показано сіру смугу, елемент рядка все ще є. Це особливо непомітно, коли всі ваші позиції - це спеціальні товари

введіть тут опис зображення опис


4

Я використовую XCode 5.1 для розробки iOS 7.1, і я виявив, що наступний підхід працює для перестановки вкладок у контролері панелі вкладок.

Щоб переставити вкладки в контролері бар вкладки, видаліть сегменти з контролера панелі вкладок до контролерів підпору. Потім повторно намалюйте сігі в порядку, в якому потрібно вкладки. Для "повторного малювання" я маю на увазі, що ви керуєте перетягуванням з контролера панелі вкладок до контролера поданого виду і вибираєте "Relationship Segue" (внизу списку) => контролери перегляду.


3
правда. Інший спосіб зробити це - редагувати .storyboard як "вихідний код", знайти segues (вони є тегом <segue>) та переупорядкувати їх замовлення.
voghDev

3

Ви можете переконатися, що для параметра Док-контролер Tab у вашій головній дошці розміщено значення "Перший відповідь", що вирішило це для мене!


Я випробовував кілька таких ідей, тому що зараз у мене виникає ця проблема, незалежно від того, який проект я зараз виховую (новий чи старий). Я не можу зрозуміти, що означає KayKay під "параметром док-контролера". У когось є ідеї?
LaurelS

3

У мене виникла та сама проблема після додавання навігаційного контролера.

Виправлення: закрийте дошку розкадрування (Ctrl + Cmd + W) і виконайте чисту папку збірки (Option + Cmd + Shift + K) та звичайну чисту (Cmd + Shift + K). Повторно відкрийте дошку та ви зможете перетягнути елементи ще раз.


1

Те саме в xCode 4.6. Спочатку я слідував підручником щодо початку розкладок у ios У момент, коли перейшов елемент на TabBarController, я не міг змінити порядок. Я намагався зберегти - не вийшло; однак, як тільки я закрив XCode і знову відкрив - це РОБОТА.


1

Контроль + перетягніть елемент у TabBarController у табло та переставити на потрібне місце.


Я думаю, що це варіант + перетягування
GGirotto

0

Я також слідкував за підручником raywenderlich за дошками розповідей і зрозумів, що після додавання контролера вкладок я не міг переставити вкладки, перетягнувши його. Ну, мабуть, це просто якась помилка в xcode. Тому просто вийдіть з xcode, перезавантажте його, і цього разу ви зможете перетягувати вкладки.


0

Для мене перетягування не працювало ні в XCode 7.3.1. Перезавантаження XCode не допомогло. І жодне з вищезгаданих рішень не працювало для мене.

Що мені допомогло: я видалив відносини до другого елемента і перетягнув ctrl з цього елемента на контролер панелі вкладок і створив інше співвідношення. Зараз це було автоматично на другому місці.


0

Видаліть усі послідовності контролерів перегляду за допомогою вкладки. Вам потрібно спочатку переглядати диспетчер перегляду, а потім підключити інший контролер перегляду з панеллю вкладок.

Не потрібно перезавантажувати xcode та не вимагати ясного файлу вихідного коду в зміні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.