xcode / storyboard: çubuk düğmesi üstteki araç çubuğuna sürüklenemiyor


99

Bir tablonun ayrıntılı görünümü olan bir görünüm denetleyicim var. Tablonun satırına tıkladığınızda sizi detay görünümüne götürür. Ayrıntılı görünüm, gezinme çubuğunun sol üst köşesinde sizi masaya geri gönderen bir düğme olacak şekilde bir gezinme denetleyicisine yerleştirilmiştir. Çok uzak çok iyi.

Şimdi, ayrıntı görünümünü düzenleyebilmeniz için gezinme çubuğunun sağ tarafına bir düzenleme düğmesi eklemek istiyorum. Planım, bu, öğenin ayrıntılarını düzenlemenize izin veren modsal olarak başka bir görünüm denetleyicisi ekleyecek. Standart şeyler.

Ancak, nesneler listesinden bir çubuk düğmesi öğesini gezinme çubuğuna sürüklemeye çalıştığımda, bu sürmeyecek. Bunun yerine, fare düğmesini bıraktığımda, sekme çubuğu denetleyicisinin altındaki çubuk düğmesini bırakıyor. (Gezinme şemam farklı sekmeler içerir ve her sekme için bir tablo, ayrıntılı görünüm vb.)

Herhangi biri bununla daha önce karşılaştı ve neyi yanlış yaptığımı önerebilir veya çubuk düğmesi öğesini gezinme ekranının sağ tarafına eklemek için bir tür geçici çözüm önerebilir. Kod olarak eklemem gerekiyor mu?

Önerileriniz için teşekkürler.


Aşağıdaki öğreticiyi kontrol edin brianflove.com/2012/10/01/…
casillas

Self.navigationItem.rightBarButtonItem = self.editButtonItem; kullanarak düğmeyi ekleyebildim; ve film şeridinde yeni editvc oluşturdu, ancak nasıl segment oluşturacağımı bilmiyorum. Film şeridinde yapamıyorum çünkü düzenleme düğmesi görünmüyor, bu yüzden kodda olması gerektiğini tahmin ediyorum. hazırlık dili deneyecek misin?
user1904273

Cevaplardan biri size yardımcı

Yanıtlar:


157

Xcode6 kullanırken de aynı sorunu yaşadım ve UINavigationItem'in NavigationController'a gömdüğünüz ilk ViewController için otomatik olarak eklendiğini ancak sonraki ViewControllers için aşağıdaki gibi manuel olarak eklemeniz gerekeceğini fark ettim:

  1. Nesne kütüphanesinde Gezinme Öğesini bulun ve ardından onu film şeridindeki 2. ViewController cihazınıza sürükleyin.
  2. Nesne kitaplığında, Çubuk Düğme Öğesini bulun ve önceki adımda oluşturduğunuz gezinme öğesine sürükleyin.

Artık Çubuk Düğmeleriniz sahnenizin en üstüne yapışmış olacak.

Güncelleme Çözüm hala XCode 7 ile çalışıyor ancak daha açıklayıcı bir fotoğraf eklemek istedim. Sadece, yukarıda bahsedilen standart veya teknik isimlere gerçekten aşina olmayan bir durumda. Sağdaki kırmızı oklara dikkat edin, bunlar yukarıda bahsedilen 1. adıma, 2. adıma atıfta bulunur. Ayrıca soldaki kırmızı dikdörtgendeki görünüm hiyerarşisine de dikkat edin. görüntü açıklamasını buraya girin


2
Evet, bu benim için yaptı. Bunun doğru cevap olduğunu düşünüyorum, XCode Gezinti Öğesini sonraki ViewControllers'e eklemiyor gibi görünüyor.
Jeremy Chone

bu doğrudur, ancak görüntüdeki kırmızı ok nesne kitaplığındaki çubuk düğme öğesinden soldaki kırmızı kutuya kadar gitmelidir.
malhal

Kırmızı okla gösterildiği gibi tuvale bırakabilir veya önerdiğiniz gibi Belge ana hatlarına bırakabilirsiniz. Bir fark
yaratmaz

Bu cevabı bulduğuma sevindim çünkü harika çalışıyor - sadece UINavigationItem'in neden Storyboard'da bulunmadığına şaşırdım? Açıkçası çalışma zamanında orada çünkü kod self.navigationItem.rightBarButtonItem = ...çalışacak. İlk VC'deki UINavigationController'ın, yığına itilen sonraki tüm VC'ler için onu başlattığını tahmin ediyorum. Bununla birlikte, birini oraya elle sürükleyerek, neden birbirinin üstünde 2 UINavigationItem'i bulmuyorsunuz? Manuel olarak sürüklediğiniz ve UINavigationController'dan zaten orada olanı?
James Toomey

70

Pis numara:

  1. İtmek için segmentinizi değiştirin.
  2. İhtiyaç duyduğunuz içeriği ayarlayın
  3. Göstermek için geri dönün

Ardından içerik düzenlenebilir olacak ve segment için kullanımdan kaldırılmamış bir stiliniz olacak.


Adamım, çok çirkin. Ancak bu UIBarButtonItem, Xcode 7.3'teki bir görünüm denetleyicisinde çalışır .
mikeho

OMG, hala XCode 8.2.1'de çalışıyor. Ne zaman düzeltilecek? Asla, muhtemelen
Dima Rostopira

Kodla eklemeden bulduğum tek yol bu.
Joshua

Aman Tanrım ... Teşekkürler (y)
Nasir Khan

Bu hatanın 2 yıldan sonra hala burada olduğuna inanamıyorum
Carioni

33

Film şeridinizin görünüm denetleyicisinde büyük olasılıkla bir Navigation Item. Birini Nesne kitaplığından sürükleyip görünüm denetleyicinize bırakabilirsiniz.

Ardından, çubuk düğmesi öğelerini gezinme çubuğunun sol veya sağ tarafına sürükleyip bırakabilirsiniz.


1
bu işe yaradı, ancak bir denetleyiciye itme
segmentiniz

Bu doğru cevap olmalı. Gerisi bana hack görünüyor
MK Yung

23

Çözdüm. 'Gezinme Öğesi'ni ayrıntı görünümünüze sürükleyin. Çubuk Düğme Öğesinde sürükleyebileceğinizden daha fazla.


8

Bu sorunu çözme şeklim, bir UINavigationController'ı Storyboard'a sürüklemek ve buna UIBarButtonItems eklemeye çalışmak yerine, bir UITableViewController'a sürükledim ve sonra

Düzenleyici-> Yerleştir-> Gezinme Denetleyicisi

Bu, UIBarButtonItems'i gezinti çubuğunun her iki tarafına da sorunsuz ekleyebilmem dışında öncekiyle aynı sonucu verdi.


Yukarı çıkmalısın !!
Vin

5

Aslında xcode sorunu. Benim için işe yarayan bir numara, SOL ÜZERİNDEKİ DOSYA YAPISINI GÖRÜNTÜLE'ye çubuk düğmesini eklemektir. Umarım size yardımcı olur. :)


Bu çalışıyor! Apple, hatayı Xcode 8.2 ile düzelttiği sürece çözüm bu sanırım
Arjun Kalidas

5

Bunun bir hata olduğunu düşünüyorum. Ben de aynı sorunu yaşadım, boyut sınıflarını devre dışı bırakıp etkinleştirerek bu sorunu çözdüm.

Arayüz oluşturucu belgesinde boyut sınıflarını devre dışı bırakabilir ve etkinleştirebilirsiniz.

görüntü açıklamasını buraya girin


4

Ben de bu sorunu yaşadım, benim için çalıştığı projeyi kapatıp yeniden açın.


3

Bunun bir XCode tuhaflığı olduğuna inanıyorum. Ben de aynı sorunu yaşadım. Xcode'u sıfırlamam ve sonunda onu almak için film şeridindeki şeylerin yerleşimini değiştirmem gerekiyordu. Şuan çalışıyor.


3

Bunun bir Xcode hatası olduğunu düşünüyorum. Xcode 8'de, seguesekme çubuğu görünüm denetleyicisinden önceki film şeridini tüm seçeneklerine ( show detail, present...) değiştirin. Sonra geri dönün show. Çubuk düğme öğelerini sürüklemeyi ve döşemeyi değiştirmeyi deneyin. Benim için çalışıyor!


1

Projenizi "temizlemeyi" denediniz mi? Bunun bazen bana yardımcı olduğunu biliyorum ("Ürün"> "Temizle" seçeneğine gitmeniz yeterli). Veya alternatif olarak gezinme çubuğunu silin ve tekrar deneyin.

Bunun bir programlama hatası olduğunu düşünüyorsanız, kodunuzu iletmekten çekinmeyin. Elimden gelen her şekilde yardımcı olmaktan mutluluk duyarım. :)


1

XCode IDE'yi sıfırlamalısınız. XCode'u kapatın ve aşağıdaki kodları terminalde yazın ... Çalışacaktır.

rm -rf $HOME/Library/Application Support/Developer/Shared/Xcode
rm -rf $HOME/Library/Preferences/com.apple.dt.Xcode.*
rm -rf $HOME/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState
rm -rf $HOME/Library/Developer/Xcode

1

Aynı sorun. Bir Gezinme Denetleyicisinin içinde bir Tablo Görünüm Denetleyicim ve zincirin daha aşağısında takip eden birçok ViewControllers vardı. İLK kök görünüm denetleyicisi için otomatik olarak bir 'Gezinme Öğesi' oluşturuluyordu ve buna sorunsuz bir 'Çubuk Düğme Öğesi' ekleyebildim. Öykü Panosu aracılığıyla sürükleyip bırakın. Ama hepsi bu. Aşağıdaki Tablo Görünümü Denetleyicisinde ve diğer görüntü denetleyicilerinde, ilk Gezinme Denetleyicisinde olsalar bile (otomatik oluşturulan geri düğmesi belirdi), film şeridi bir Çubuk Düğmesi Öğesi eklememe asla izin vermezdi.

Wael Showair'in çözümü benim için işe yaramadı. Çubuk Düğmesi Öğeleri görünmez.

Sonunda bunu programlı olarak çözdüm (Swift 2.0):

var testButton = UIBarButtonItem(title: "Test Button", style .Plain, target: self, action: "testButtonMethod")
self.tabBarController?.navigationItem.rightBarButtonItem = testButton

Ekstra Gezinme öğesi veya Çubuk Düğme Öğesi gerekmez.


1

Kök görünüm denetleyicisi seçeneğini seçerek bu sorunu çözebildim ve ardından simüle edilmiş matriste Üst çubuk seçeneğini Opak Gezinti Çubuğu olarak değiştirdim ve öğeyi gezinme çubuğunun üstüne ekleyebildim. bu cevap birine yardımcı olacaktır.


1

Aynı sorunu xcode 8'de de yaşadım. Sadece xcode'u kapatmam ve projeyi yeniden açmam gerekiyordu ve ardından bar düğmesini herhangi bir sorun olmadan Kök Denetleyiciye ekleyebildim.


1

XCode 8 için

Burada birçok cevap var. Bazılarını denedim ama yapamadım. Benim çözüm buldu Yani, sadece seçmek ViewController, go Müfettiş Özellikleri bölümü ve değiştirmek Top Bar için Opak Navigasyon Bar ve Boom. Film şeridinizde gezinme çubuğunu göreceksiniz. Başlığı değiştirebilir veya birkaç öğe ekleyebilirsiniz. Opak'ı korumak istemiyorsanız, stili Çıkarılmış olarak değiştirebilirsiniz .

görüntü açıklamasını buraya girin


1

Xcode 10'da, bu yeni görünüm denetleyicisine giden segment türünü 'İt (kullanımdan kaldırıldı)' olarak değiştirdim, bu geçişi yaptıktan sonra izin verildiği şekilde gezinme öğesini ekledim. Başlangıçta istediğiniz segment türüne geri dönerseniz, navigasyon öğesi kalacaktır.


0

"Çubuk Düğmesi Öğesini" "Gezinme Denetleyicisi" ne sürüklemek yerine, "Ayrıntı Görünümü Denetleyicisi" ne sürükleyin. Ayrıntı görünümünü "Gezinme Görünümü" ne eklediğinizde, "Gezinme Öğesi" "Ayrıntı Görünümü Denetleyicisi" ne eklenecektir. "Çubuk Düğme Öğesini" Gezinme Öğesinin sağ tarafına sürüklerseniz, öğe "Sağ Çubuk Düğmesi Öğeleri" altına dahil edilecektir.


0

Mark Lyons'un dediği gibi, ben de aynı çözümü kullandım.

  • önce itme segmenti kullanıldı
  • çubuk öğesini ekledi
  • segmenti göstermek için geri dön
  • bitti

0

Xcode 11'de, çubuk düğmenizi oluşturmak için bir düğmeyi gezinme çubuğuna sürükleyebilirsiniz.

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.