StoryBoard'da Sekme Çubuğu Denetleyici Sırasını Yeniden Düzenleme


166

Benim app iPhone app 4 farklı Tablo Görünümü Kontrolörleri ile 4 ilişkileri olan bir Tab Bar Denetleyicisi var. StoryBoard'daki ilişkinin sırasını grafik olarak yeniden düzenlemenin bir yolu var mı? Bunu yapmanın bir yolunu bulamıyorum ve eminim bir şeyleri kaçırmalıyım!


Yanıtlar:


255

4.5'te Denetleyici ekledikten sonra film şeridini kaydedin, başka bir dosyaya geçin ve ardından Film şeridine geri dönün ve sekmenin sürüklenmesi yeniden çalışmalıdır.


45
Sekme sürükleniyor! Tamam, sekmeleri sürükleyebileceğimizi bile bilmiyordum. Sekmeler seçilemediğinden çok sezgisel değil ...
Pierre de LESPINAY

1
Sekme anahtarı / kapatma eklentileri ile Xcode kullanıcı arayüzüne atılmaktan sıkılırsanız, JannieT'nin cevabına bakın. Hızlı ve kolaydır.
Sixto Saez

Kasıtsız ama benim için Xcode 7'de de çalıştı.
zeeple

Sürüklenecek öğeleri görmüyorsanız, bunun nedeni henüz bir simge belirlememiş olmanız olabilir. Simgeleri ayarlayana kadar görünmediğini buldum!
Brian

1
güzel :) bile sürüklenebilir olabileceğini bilmiyordu
Amr Angry

133

Sekme çubuğu denetleyicisindeki simgeleri sürükleyip bırakarak siparişi yeniden düzenleyebilirsiniz.


4
Özel sekmeler kullanıyorsanız, Tab Bar Controllersahne gri bir çubuk gösterse de yeniden sıralamak için sürükleyip bırakabilirsiniz , çubuk öğesi hala oradadır. Bu, özellikle tüm çubuk öğeleriniz özel öğeler olduğunda göze çarpmaz.
Gerald

En basit ve rahat bir yol. Xcode 7.3.1'de çalışır. Swift 2.2
Mark Barrasso

Xcode 9'da çalışıyor - simgeler görünmez olsa da.
Cesare


15

XCode 4.6 ile (belirtilen kobinasyonlardan herhangi biriyle) sürükleyip bırakamadım. Ben "in Storybord açarak çözmüş Kaynak Kodu ," modunda bulma TabBarController ve yeniden düzenleme dizinleri, etiketi.


Bölünmüş görünüm denetleyicisine iç içe bir sekme çubuğu denetleyicisi var ve sonuç olarak sekme çubuğu denetleyicisinin sekmeleri film şeridinde görünmüyor. Film şeridi kaynak kodunu düzenlemek benim için çalıştı. Teşekkürler!
Scott Gardner

14

OP'nin Xcode arayüz oluşturucuyu kullandığını ve bunu yapmak için grafik bir yol istediğini biliyorum, ancak Xamarin iOS Designer ile çalışan geliştiriciler için burada kullandığım bir geçici çözüm var.

.Storyboard dosyasını bir metin düzenleyicisinde veya Xcode kullanarak açın , Project Navigator'daki film şeridi öğesini sağ tıklayın ve Kaynak Kodu Olarak Aç'ı seçin . Film şeridi XML'sinde <tabBarController ...>düğümü bulun . Sonra <connections>bölümdeki seguelerin sırasını yeniden düzenlerim :

<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=Segue öğesinin hangi görünüm denetleyicisine işaret ettiğini belirlemek için XML'de nitelik değerini arayın .


1
Harika bir çözüm. Büyük bir StoryBoard'um vardı ve segues'leri çıkarmak ve yeniden oluşturmak biraz zaman
alacaktı

10

Sekme simgelerini sekme çubuğuna sürükleyip bırakın.

sekme çubuğu denetleyicisine ait ana sekme çubuğu.

HTH

:: EDIT :: Yani bu işe yaramıyor ... Eminim eskiden.

Her neyse, bulduğum en kolay yol sekmeleri kaldırmak ve göstermelerini istediğiniz sırada geri eklemektir.

Bu yardımcı olur umarım.


LOL, test etmeye gitti ve yanılmışım. Afedersiniz. Bunu daha önce de yaptım. Bir saniye ...
Fogmeister

Evet sanırım sürükle-bırak işleminin bundan emin olmasam da işe yaradığını hatırlıyorum! Belki
Xcode'da bir

Ben sadece denedim, ve sadece Xcode 4.5 sekmeleri sürüklemek için iyi çalıştı
rdelmar

@rdelmar, projenizi bir sekme çubuğu uygulaması olarak başlattınız mı veya tek bir görünüm uygulamasına bir sekme çubuğu görüntüleme denetleyicisi eklediniz mi?
BigLex

5
Sürükle ve bırak özelliği işe yarar, ancak sekmeleri sürükleyip bırakmaya çalışmadan önce film şeridinde herhangi bir şey yaptıysanız inatçı olur. Düzeltmek için Xcode'da başka bir dosya seçin ve film şeridinize geri dönün. Sürükle ve bırak özelliği tekrar çalışır. Xcode'u kapatmanıza veya denetleyicilerinizi yeniden eklemenize gerek yoktur.
12:49

9

Yorumlarda belirtildiği gibi, sürükle ve bırak işlevi bir gezinti denetleyicisi eklendikten sonra şu anda çalışmıyor (Xcode 4.5). Ancak, denetleyiciyi ekledikten sonra Xcode'u yeniden başlatmak sürükle bırak işlevinin tekrar çalıştığını gösteriyor.


8

XCODE 10.1: Hikaye tahtasını yakınlaştırın. Sekme öğelerini sürüklemeniz yeterlidir. (Vardiya yok, başka yok)


2
Bunu denemeyi nasıl düşündün? 😃 Mükemmel! 👏
GarySabo

7

Film şeridini 'kaynak kodu görünümü' olarak açar ve ardından IB görünümü olarak açarsanız hatayı düzeltiyor gibi görünür.


Bu benim için çalıştı (Xcode 8.1), sonunda kaynak kodu görünümünde film şeridini açtıktan sonra yeniden düzenlemek için sürükleyebildim.
Undrea

7

Herkes tarafından sağlanan sürükle ve bırak yöntemine eklemek için. Görüntüleri ekleyebilmem için bunu yanıt olarak gönderdim. Xcode 7.3 üzerinde denendi

Özel kullanıyorsanız tab bar item, Tab Bar Controllersahne gri bir çubuk görüntülese de yeniden sıralamak için sürükleyip bırakabilirsiniz , çubuk öğesi hala oradadır. Tüm çubuk öğeleriniz özel öğeler olduğunda bu özellikle göze çarpmaz

resim açıklamasını buraya girin açıklama


4

IOS 7.1'in geliştirilmesi için XCode 5.1 kullanıyorum ve Sekme Çubuğu Denetleyicisindeki sekmeleri yeniden düzenlemek için aşağıdaki yaklaşımın işe yaradığını gördüm.

Sekme Çubuğu Denetleyicisindeki sekmeleri yeniden düzenlemek için Sekme Çubuğu Denetleyicisinden alt görünüm denetleyicilerindeki sekmeleri silin. Ardından sekmeleri istediğiniz sekme sırasına göre yeniden çizin. "Yeniden çizmek" için Sekme Çubuğu Denetleyicisinden alt görünüm denetleyicisine sürüklemeyi denetlediğinizi ve İlişki Segue'i (listenin altında) => görünüm denetleyicilerini seçtiğiniz anlamına gelir.


3
doğru. Bunu yapmanın bir başka yolu, .storyboard'u "Kaynak kodu" olarak düzenlemek, sekmeleri bulmak (bir <segue> etiketi) ve siparişlerini yeniden düzenlemek.
voghDev

3

Ana film şeridinizdeki Sekme Denetleyicisi Yuvası seçeneğinin "İlk Yanıtlayıcı" olarak ayarlandığından emin olabilirsiniz, bu benim için çözülmüştür!


Şu an hangi projeyi gündeme getirdiğimden (yeni veya eski) bağımsız olarak şu anda bu sorunu yaşadığım için bu fikirlerin birkaçını deniyorum. "Tab Controller Dock opsiyonu" ile KayKay'ın ne anlama geldiğini anlayamıyorum. Herhangi bir fikri olan var mı?
LaurelS

3

Aynı sorunu bir Gezinti Denetleyicisi ekledikten sonra da yaşadım.

Düzeltme: Film şeridini kapatın (Ctrl + Cmd + W) ve temiz bir oluşturma klasörü (Option + Cmd + Shift + K) ve düzenli bir temizlik (Cmd + Shift + K) yapın. Film şeridini yeniden açtığınızda öğeleri tekrar sürükleyebilirsiniz.


1

Aynı şey xCode 4.6'da. Başlangıçta ios storyboards başlangıç öğretici takip ediyordu TabBarController öğeyi swith noktasında, sipariş değiştiremedim. Onu kurtarmaya çalıştım - işe yaramadı; Bununla birlikte, XCode'u kapatıp tekrar açtığımda - ÇALIŞTI.


1

Control + öğeyi film şeridinde TabBarController'da sürükleyin ve istediğiniz konuma yeniden düzenleyin.


bence bu seçenek + sürükleyin
GGirotto

0

Ben de hikaye tahtaları için raywenderlich öğretici takip ediyordu ve sekme denetleyicisi ekledikten sonra sürükleyerek sekmeleri yeniden düzenlemek olamazdı fark etti. Görünüşe göre bu sadece xcode bazı hata. Yani sadece xcode'dan çıkın, yeniden başlatın ve bu sefer sekmeleri sürükleyebileceksiniz.


0

Benim için sürükleme de XCode 7.3.1'de işe yaramadı. XCode'u yeniden başlatmak işe yaramadı. Ve yukarıda belirtilen çözümlerin hiçbiri benim için işe yaramadı.

Bana ne yardımcı oldu: İkinci öğeyle olan ilişkiyi sildim ve o öğeden Sekme Çubuğu Denetleyicisine ctrl-sürükledim ve başka bir ilişki oluşturdum. Şimdi otomatik olarak ikinci sıradaydı.


0

Tüm görünüm denetleyicileri sekmesini sekme çubuğu ile kaldırın. Önce viewcontroller segue sonra başka bir viewcontroller tabbar ile bağlanmak gerekir.

Hiçbir yeniden başlatma xcode ve hiçbir değişiklik net kaynak kodu dosyası gerektirir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.