Zmiana kolejności kontrolera paska zakładek w StoryBoard

Odpowiedzi:

255

W 4.5 zapisz scenorys po dodaniu kontrolera, przełącz się do innego pliku, a następnie wróć do serii ujęć, a przeciąganie kart powinno znowu działać.

abitofcode
źródło
45
Przeciąganie kart! Ok, nawet nie wiedziałem, że możemy przeciągać karty. Niezbyt intuicyjne, ponieważ nie można wybierać zakładek ...
Pierre de LESPINAY
1
Jeśli zmęczy Cię szturchanie interfejsu użytkownika Xcode za pomocą przełączania kart / zamykania inkantacji, spójrz na odpowiedź JannieT. To szybkie i łatwe.
Sixto Saez
Nieintuicyjne, ale działało również dla mnie w Xcode 7.
zeeple
Jeśli nie widzisz elementów do przeciągnięcia, może to być spowodowane tym, że nie ustawiłeś jeszcze ikony. Okazało się, że nie wyświetla się, dopóki nie ustawię ikon!
Brian
1
fajnie :) nawet nie wiedziałem, że da się przeciągnąć
Amr Angry
133

Możesz po prostu zmienić kolejność, przeciągając i upuszczając ikony w kontrolerze paska kart

Indy Bains
źródło
4
Jeśli używasz niestandardowych kart, nadal możesz przeciągać i upuszczać, aby zmienić kolejność, nawet jeśli Tab Bar Controllerscena pokazuje szary pasek, element paska nadal tam jest. Jest to szczególnie niepozorne, gdy wszystkie elementy paska są elementami niestandardowymi.
Gerald
Najbardziej prosty i wygodny sposób. Działa w Xcode 7.3.1. Swift 2.2
Mark Barrasso
Działa w Xcode 9 - choć ikony były niewidoczne.
Cesare
17

SHIFT + DRAG działa na Xcode 10.0

przystojny
źródło
1
Tak proste jak to.
bikram
15

Nie byłem w stanie przeciągnąć i upuścić z XCode 4.6 (z żadną z wymienionych kobinacji). Rozwiązałem to, otwierając storybord w trybie " Source Code ", lokalizując tabBarController i przestawiając tag seque .

Nicola
źródło
Mam kontroler paska kart zagnieżdżony w kontrolerze widoku podzielonego, w wyniku czego karty kontrolera paska kart nie są widoczne w scenorysie. Edycja kodu źródłowego scenorysu zadziałała dla mnie. Dzięki!
Scott Gardner
14

Wiem, że OP używa konstruktora interfejsu Xcode i prosi o graficzny sposób, aby to zrobić, ale dla programistów pracujących z Xamarin iOS Designer, oto obejście, którego używam.

Otwórz plik .storyboard w edytorze tekstu lub za pomocą Xcode, kliknij prawym przyciskiem myszy element scenorysu w Nawigatorze projektu i wybierz Otwórz jako kod źródłowy. W pliku XML scenorysu zlokalizuj <tabBarController ...>węzeł. Następnie przestawiam kolejność segue w <connections>sekcji:

<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>

Wyszukaj destination=wartość atrybutu w kodzie XML, aby określić, na który kontroler widoku wskazuje element segue.

Jannie Theunissen
źródło
1
Świetne rozwiązanie. Miałem ogromny StoryBoard i usunięcie i odtworzenie
segmentów zajęłoby
10

Po prostu przeciągnij i upuść ikony kart na pasku kart.

czyli główny pasek zakładek, który należy do kontrolera paska zakładek.

HTH

:: EDYCJA :: Więc to nie działa ... Jestem pewien, że kiedyś.

W każdym razie najłatwiejszym sposobem, jaki znalazłem, jest usunięcie zakładek i dodanie ich z powrotem w kolejności, w jakiej mają się wyświetlać.

Mam nadzieję że to pomoże.

Fogmeister
źródło
LOL, właśnie poszedłem na test i się myliłem. Przepraszam. Zrobiłem to wcześniej.
Sekundę
Tak, myślę, że pamiętam, że przeciąganie i upuszczanie działało, chociaż nie jestem tego pewien! Może coś zmienili w Xcode ...
BigLex
Właśnie go wypróbowałem i działało dobrze, wystarczy przeciągnąć karty w Xcode 4.5
rdelmar
@rdelmar, czy rozpocząłeś swój projekt jako aplikację z paskiem kart, czy dodałeś kontroler widoku paska kart do aplikacji z pojedynczym widokiem?
BigLex,
5
Przeciągnij i upuść działa, ale staje się uparty, jeśli zrobiłeś cokolwiek w scenorysie przed próbą przeciągnięcia i upuszczenia zakładek. Aby to naprawić, wybierz dowolny inny plik w Xcode, a następnie wróć do swojej scenorysu. Przeciągnij i upuść znowu zadziała. Nie ma potrzeby zamykania Xcode ani ponownego dodawania kontrolerów.
memmons
9

Jak zauważono w komentarzach, przeciąganie i upuszczanie obecnie nie działa (Xcode 4.5) po dodaniu kontrolera nawigacji. Jednak ponowne uruchomienie Xcode po dodaniu kontrolera wydaje się ponownie działać metodą przeciągnij i upuść.

bryfox
źródło
8

XCODE 10.1: Powiększ planszę scenariuszy. Po prostu przeciągnij elementy zakładek. (Bez zmiany, żadna inna)

Aaban Tariq Murtaza
źródło
2
Jak myślisz, żeby tego spróbować? 😃 Świetnie! 👏
GarySabo
7

Jeśli otworzysz scenorys jako „widok kodu źródłowego”, a następnie zamkniesz go i otwórz go jako widok IB, wydaje się, że naprawia błąd.

Tom DeMille
źródło
To zadziałało dla mnie (Xcode 8.1), mogłem w końcu przeciągnąć, aby ponownie uporządkować po otwarciu storyboardu w widoku kodu źródłowego.
Undrea
7

Aby dodać do metody przeciągnij i upuść zapewnianej przez wszystkich. Opublikowałem to jako odpowiedź, abym mógł dołączyć obrazy. Wypróbowano na Xcode 7.3

Jeśli używasz niestandardowego tab bar item, nadal możesz przeciągać i upuszczać, aby zmienić kolejność, nawet jeśli Tab Bar Controllerscena pokazuje szary pasek, element paska nadal tam jest. Jest to szczególnie niepozorne, gdy wszystkie elementy paska są elementami niestandardowymi

wprowadź opis obrazu tutaj opis

Gerald
źródło
4

Używam XCode 5.1 do tworzenia iOS 7.1 i stwierdziłem, że następujące podejście działa w przypadku zmiany układu kart w kontrolerze paska kart.

Aby zmienić rozmieszczenie zakładek w kontrolerze paska zakładek, usuń segmenty z kontrolera paska zakładek do kontrolerów widoku podrzędnego. Następnie ponownie narysuj spływy w kolejności, w jakiej mają być zakładki. Aby „ponownie narysować” mam na myśli kontrolowanie przeciągania z kontrolera paska zakładek do kontrolera widoku podrzędnego i wybieranie opcji Relacja Segue (na dole listy) => wyświetl kontrolery.

Michael Osofsky
źródło
3
prawdziwe. Innym sposobem na to jest edycja .storyboard jako „kodu źródłowego”, wyszukanie fragmentów (są to znacznik <segue>) i zmiana ich kolejności.
voghDev
3

Możesz upewnić się, że opcja Tab Controller Dock w głównym scenorysie jest ustawiona na „First Responder”, to rozwiązało to za mnie!


źródło
Wypróbowałem kilka z tych pomysłów, ponieważ teraz mam ten problem bez względu na projekt, który teraz poruszam (nowy czy stary). Nie mogę zrozumieć, co KayKay ma na myśli, mówiąc o opcji „Tab Controller Dock”. Czy ktoś ma jakieś pomysły?
LaurelS
3

Miałem ten sam problem po dodaniu kontrolera nawigacji.

Poprawka: zamknij scenorys (Ctrl + Cmd + W) i wykonaj czysty folder kompilacji (Option + Cmd + Shift + K) i zwykłe czyszczenie (Cmd + Shift + K). Otwórz ponownie scenorys, a będziesz mógł ponownie przeciągać elementy.

Zimowy
źródło
1

To samo dotyczy xCode 4.6. Początkowo korzystałem z samouczka na temat tworzenia scenorysów w ios. W momencie przełączania elementu na TabBarController nie mogłem zmienić kolejności. Próbowałem to uratować - nie działało; jednak, gdy zamknąłem XCode i otworzyłem ponownie - DZIAŁAŁO.

Srdjan
źródło
1

Control + przeciągnij element w TabBarController w scenorysie i zmień kolejność w żądane położenie.

Sreedeepkesav MS
źródło
Myślę, że to Option + przeciągnij
GGirotto
0

Śledziłem również samouczek raywenderlich dotyczący scenorysów i zdałem sobie sprawę, że po dodaniu kontrolera kart nie mogę zmienić kolejności zakładek, przeciągając go. Cóż, najwyraźniej to tylko błąd w xcode. Po prostu zamknij xcode, uruchom go ponownie i tym razem będziesz mógł przeciągać karty.

Rachna Anil
źródło
0

Dla mnie przeciąganie nie działało również w XCode 7.3.1. Ponowne uruchomienie XCode nie pomogło. I żadne z powyższych rozwiązań dla mnie nie zadziałało.

Co mi pomogło: usunąłem relację z drugim elementem i przeciągnąłem go z klawiszem Ctrl do kontrolera paska kart i utworzyłem kolejną relację. Teraz automatycznie znajdował się na drugim miejscu.

Nina
źródło
0

Usuń sekwencję wszystkich kontrolerów widoku za pomocą paska zakładek. Najpierw musisz połączyć kontroler widoku, a następnie inny kontroler widoku połączyć się z paskiem tabulacji.

Nie wymaga ponownego uruchomienia xcode i zmiany pliku z czystym kodem źródłowym.

Digvijay Gida
źródło