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


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


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


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 .


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.


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.


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ść.


8

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


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.


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


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.


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!


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.


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.


1

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


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.


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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.