Özelleştirilmiş Çubuk Düğmesi Öğemle "Gezinme Öğesinde Düz Stil desteklenmiyor" uyarısı


88

Yuvarlak Dik Düğmeyi sağ Çubuk Düğme Öğesinin konumuna sürükledim ve Yuvarlak Dik Düğmesine bir görüntü ayarlıyorum. "Düz Stil bir Gezinme Öğesinde desteklenmez" uyarısı dışında her şey iyi çalışıyor. Çubuk Düğme Öğesinin stilini "Kenarlıklı" olarak seçsem bile, uyarı hala var. Xcode 4.2'nin sorunu nedir? Şimdiden teşekkürler!

Ps. Birçok Çubuk Düğme Öğesini Yuvarlak Dik Düğmesi ile özelleştirdim, bazen Xcode 4.2 bir Çubuk Düğme Öğesinde yalnızca bir uyarı gösterir, bazı zamanlar tüm Çubuk Düğmesi Öğelerinde uyarılar gösterir.


1
Bununla ilgili bir blog yazısı yazdım: blog.mosheberman.com/…
Moshe

Düğme eklemeyin, çubuk düğme öğeleri ekleyin. Bu benim hatamdı.
Daniel Springer

Yanıtlar:


136

Film şeridi dosyalarını manuel olarak düzenleyerek ve öğedeki Çubuk Düğmesi öğelerinde sorun teşkil eden stil = "düz" girişini bularak bu hataları kaldırabildim <navigationItem>.

Tarafından değiştirildi:

<barButtonItem key="rightBarButtonItem" style="plain" id="juB-DL-F9i">

Kime:

<barButtonItem key="rightBarButtonItem" id="juB-DL-F9i">

Bu uyarıları temizledi ... doğru veya yanlış.

Bu muazzam bir hack olabilir ve daha büyük endişe, buna kökten neden olmadım veya görünmez çubuk düğmesi öğelerini genel belgeden kaldırmadım. Bu, tüm öğeleri tek tek gözden geçirdikten ve bazı gezinme çubuklarının boş olduğunu (çocuksuz) keşfettikten sonra oldu ve büyük olasılıkla büyük miktarda kopyala ve yapıştır (cmd + c | v) kalıtımıyla ve kopya (cmd + d) kullanılmadan gerçekleşti. arayüzü oluşturmak için. Kaynak neden kökten kaynaklanmasa da belirti, çubuk öğelerinin düzeltilmesi gereken belgenin "anahat görünümünde" gösterilmemesiydi. Arayüz Oluşturucu davranışı, zaman zaman nüanslı olarak bana çarpıyor ve anahat görünümünde bir şeyin olması gereken boş bir kap bir koku. Artık benim için öyle. Bazen sorun teşkil eden düğümü silmek ve yeniden inşa etmek en garip sorunları düzeltir.

UYARI: Bunu denemeden önce görsel senaryo taslaklarınızı yedekleyin ... sürüm kontrolü sizin arkadaşınızdır ... Görsel senaryo taslağınız tamamen kapatıldığında ve derlenmeyeceğinde hiçbir sorumluluk kabul etmiyorum. Tek alacağın bir "Sana söylemiştim!" Birkaç kez zor yoldan öğrendim, ancak gayretli kaynak kontrolü başımı ağrıttı.

DÜZENLEME: kod bloklarına parantez koyun


24
arayüz oluşturucuda barbutton öğesini seçin, sağdaki öznitelikler panelini açın ve çubuk düğmesi öğesinin stilini "Kenarlıklı" olarak değiştirmek, aynı farkı film şeridi dosyasına uyguladı. bu yüzden bu güvenli olmalı.
püre

Bu tavsiye için teşekkürler @ mash, bunu yapma şeklim korkunç bir şekilde potansiyel acı ve ıstırapla işlendi.
Avcı-Orionnoir

@ SpaceDog2 Uyarılar için teşekkürler. Henüz yükseltmedim, bu yüzden buna herhangi bir onay ekleyemiyorum. Yine de bu yönteme çok dikkat ederdim. Şimdiye kadar pek çok kişiye yardımcı olduğunu biliyorum. Zamanla yardım etmeyi bırakıp bırakmayacağını göreceğiz.
Avcı-Orionnoir

5
Bu çözüm, Xcode 7.1'de benim için mükemmel çalıştı. Ayrıca, kaynak kodunu doğrudan düzenlemek yerine, bunu film şeridinin kendisinde değiştirebilirsiniz (stili Düz'den Kenarlıklı'ya çevirebilirsiniz) ve bu, style="plain"film şeridi kaynak kodundan manuel olarak silmekle tamamen aynı sonuca sahiptir . Yani, bana Hunter'dan gelen bu öneri yasal görünüyor.
Erik van der Neut

Dstudeba'nın cevabına da bakın, tarif ettiği şeyin mümkün olduğunu bile bilmiyordum. dosyayı elle düzenlemekten herkesin biraz acı ve ıstırabını kurtarabilir. Kaynak kontrolü arkadaşlarınızdır, herkes güvende olsun. ;)
Hunter-Orionnoir

31

Uyarıyı tıklarsanız ve rahatsız edici gezinme öğesine gitmezseniz aşağıdakileri yapın. (eklenen yorumlardan daha güvenli yöntemle Hunter'ın cevabının görsel temsili)

Dosya tarayıcısında film şeridine sağ tıklayın ve Open As Source Code

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

Kaynak kod sayfasında "düz" araması yapın ve Gezinme Öğesine ekli olanı bulun.

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

Görünümün adını almak için, arama çubuğuna "sahne" yazın ve o etiketin üzerindeki ilk örneği aramak için geri arama okunu tıklayın .navigationItem

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

İşte Sahnenizin adı, şimdi Interface Builder - Storyboardyukarıda açıklanan sağ tıklama yöntemiyle Film Şeridi görünümünüzü tekrar değiştirebilir ve ardından sahne menüsünde Sahne'yi ve içindeki Çubuk Öğesini seçmeye gidebilirsiniz.

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

Nitelikler denetçisine gidin ve stili olarak Plaindeğiştirin.Bordered

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


1
Güzel. Bunu bir dahaki sefere kesinlikle deneyeceğim.
Hunter-Orionnoir

13

Düz Stil ile ilgili uyarıyı Belge Ana Hatları'nda dolaşarak durdurdum. Bu benim Gezinme Öğemi ve bu 2 Çubuk Düğme Öğesinin içinde ve her birinin içinde bir Düğme gösteriyordu. Sorun teşkil eden ayar Çubuk Düğmesi Öğesindeydi. Nitelik denetçisinde Stil'i Düz'den Bitti'ye değiştirdim ve uyarı ortadan kalktı. Not: XCode 5 kullanıyorum.


8

Film şeridi kullanıyorsanız, uyarıyı tıklayın ve sizi rahatsız edici gezinme öğesine götürmelidir (sorun için iki tane vardı, biri beni oraya götürdü, diğeri almadı) - stili değiştirin ve projeyi temizleyin.

Çubuk Düğme Stili düz olarak ayarlandı


Yukarıdaki problemde, aslında beni hiçbir yere götürmedi. Bence bu özel konunun çatışma noktası bu, öğe gezginden tamamen eksikti, ancak dstudeba'nın cevabı ilginç bir yaklaşıma sahip, storyboard'u farklı şekilde açmak insanlara yardımcı olup olmadığını merak ediyor.
Hunter-Orionnoir

Bu en uygun cevaptır. Stili Sınırlı olarak değiştirdim.
Andrej

6

backBarButtonItem leftBarButtonItemve rightBarButtonItemvardır UINavigationItemnesneler. İçinde stylemülk yokUINavigationItem , bu yüzden uyarının nedeni budur. BarButtons'u programlı olarak ayarlamalısınız:

iOS 4:  

UIButton *bt=[UIButton buttonWithType:UIButtonTypeRoundedRect];
 [bt setFrame:YourFrame];
 //[bt setImage:[UIImage imageNamed:@"backBT"] forState:UIControlStateNormal];
 [bt addTarget:self action:@selector(popViewController:) forControlEvents:UIControlEventTouchUpInside];
 UIBarButtonItem *leftButton=[[UIBarButtonItem alloc] initWithCustomView:bt];
 self.navigationItem.leftBarButtonItem=leftButton;

İOS 5+ için:

UIBarButtonItem başvurusunun "Görünümü Özelleştirme" bölümünü okuyun .


3
Çok sayıda görünüm denetleyicisi ve düğmesi olan devralınan bir projem var. XCode'u hangi düğmenin uyarıya neden olduğunu söylemesi için ikna edemiyorum. Herhangi bir ipucu? Teşekkürler!
Olie

Belki görünüm denetleyicilerinizden geçin ve UIBarButtonItenStyle'ı "bulun". Bu genellikle özelliğin yanlış ayarlandığı
yerdir

1

Gezinti çubuğunda Round rect düğmesi yerine UIBarButtonItem kullanmayı deneyin ve bunun için bir Image ayarlayın.


ama UIBarButtonItem stili ihtiyacım olan şey değil.
lu yuan

1

Benim durumumda bu, "Düz" olarak ayarlanmış bir geri ok görüntüsüydü.

Hata mesajı, gezinme çubuğundaki tüm öğelere atıfta bulunur.


0

Film şeridindeki tüm çubuk düğmelerinizin düz dışında herhangi bir şeye ayarlandığından emin olduktan sonra, bir git commit yaptığınızdan ve türetilmiş verileri sildiğinizden emin olun. Sonsuza dek sorunun neden kendi kendine çözülmediğini anlamaya çalıştım ve türetilen veri klasörünü silmek benim için sorunu çözdü.

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.