Xcode 4.5 Storyboard 'Çıkış'


102

İOS6 desteği için Xcode 4.5'i yeni yükledim ve Storyboard'umda 'Exit' adında yeni bir simge gördüm, 'İlk Yanıtlayıcı' vb. İle birlikte görünüm denetleyicilerimin altında listelendi. 'Çıkış' etiketli küçük yeşil bir simge.

Üzerinde herhangi bir şey bulabilirim veya nasıl kullanılacağını çözebilirim.

Onun hakkında bir şey bilen var mı, nasıl çalışıyor, ne için?


1
Benzer bir soru üzerine şu cevabı gönderdim: stackoverflow.com/questions/12569316/… Çıkış (çözme) özelliğinin nasıl kullanılacağını açıklamaya yardımcı olur
Eric

Yanıtlar:


72

Buna " Gevşeme Segue " adı verilir . Maalesef, şu ana kadar XCode 4.5 yeni özellikler listesindeki kısa bir açıklama dışında bunun için bir belge yok:

Çözme bölümleri, bir film şeridindeki mevcut sahne örneklerine geçişe izin verebilir

İyi haber şu ki, WWDC 2012'den bu yaratıkları (diğer şeylerin yanı sıra) açıklayan bir oturum var.

Geliştirici hesabı ayrıntılarınızla Apple'ın iOS Geliştirme Merkezine giriş yapabilir ve ardından WWDC 2012 videoları sayfasına gidebilir ve "Uygulamanıza Öykü Panosunu Benimsemek" (yukarıdan beşinci sırada) izleyebilirsiniz. .


Güncelleme: Konuyla ilgili olarak Apple'ın belgelerinden bazı bilgiler.

Sıraları çözmek için Exit adlı bir yer tutucu nesne. Varsayılan olarak, bir kullanıcı bir alt sahneyi kapattığında, o sahnenin görünüm denetleyicisi ana sahneye açılır (veya geri döner) - bu, orijinal olarak alt sahneye geçiş yapan sahnedir. Bununla birlikte, Exit nesnesi, bir görünüm denetleyicisinin rastgele bir sahneye dönmesini sağlar.

(İOS6 dokümantasyonundan> Genel> Başlarken)

Ve işte nasıl uygulayabileceğinize dair güzel bir örnek


Başka Bir Güncelleme:

İşte bu konuyla ilgili Apple'dan teknik bir not .


3
Tamam, peki nasıl kullanıyorsun? Bir görünüm denetleyicisinin altındaki çıkış nesnesinden kontrol-tıklamayı denedim, ancak hiçbir şeye bağlanmıyordu.
şim

4
Temel olarak çözme segmentiniz için bir yöntem tanımlamanız ve ardından exitçağırmak istediğiniz yöntemi seçerek bir öğeden düğmeye bağlanmanız gerekir. Sen bulabilirsiniz Burada bir örnek (I örnek içerecek şekilde kuyunun olarak benim cevap güncelledik)
Alladinian

1
-1: Çok fazla kelime, çok az yararlı bilgi. Bunu okuduktan ve kendi uygulamamda kullandıktan sonra, daha yararlı
olacağını umduğum

1
Bu yüzden var olmayan Apple belgelerini seviyorum. Adamım, orada biri kovulmalı.
Duck

@SpaceDog Belki de olan buydu, hepsi kovuldu ve belgeleri yazacak kimse kalmadı: / Yine de WWDC videosunu seviyorum - 2012 görünüşe göre Apple'ın zirveye ulaştığı yıl.
2019'da

10

Film şeridinizde bir dizi görünümünüz olduğunu hayal edin:

A -> ... -> Z

ZKullanıcının tamamen geri dönmesine izin veren bir görünüm düğmesine sahip olmak istiyorsunuz A.

Yani yapmanız gereken şey, geri almak istediğiniz görünümü, bu durumda, Aa olarak işaretlenen IBActionve tek bir tip parametresi alan bir örnek yöntemine vermektir UIStoryboardSegue *. Yöntemin ve değişkenin adı önemli değil. Uygulama içinde ne yaptığınız da önemli değil. İşte bir örnek:

Obj C:
in A'in arabirimi (değil Z' ler):

- (IBAction)cancelSignup:(UIStoryboardSegue *)unwindSegue;

Gelen Abireyin Uygulama (değil Z'ler):

- (IBAction)cancelSignup:(UIStoryboardSegue *)unwindSegue {
    // Only "implemented" to satisfy a respondsToSelector: search.
    // You can actually implement more stuff here, if you want, IE, if
    // you need to reach out to a server to mention that this screen was
    // returned to from a later screen.
}

Swift:
In A'in kaynağı (değil Z' ler):

@IBAction func cancelSignup(unwindSegue: UIStoryboardSegue) {
    // Only "implemented" to satisfy a respondsToSelector: search.
    // You can actually implement more stuff here, if you want, IE, if
    // you need to reach out to a server to mention that this screen was
    // returned to from a later screen.
}

Şimdi, film şeridinizin içinde, controlbir öğeden Z(IE, bir iptal düğmesi) Z's öğesine sürükleyin Exit. IBActionYalnızca tek UIStoryboardSegue *bir eylemi bir eylem olarak kabul eden görünüm hiyerarşisinin daha üst kısımlarındaki tüm görünümleri tarayacak ve seçmeniz için bunları listeleyecektir.

Umarım bu, mevcut cevaplardan daha basit ve yardımcı olmuştur. Bu bağlantının özellikle yararlı olduğunu fark ettim, bu yüzden cevabımı okuduktan sonra hala belirsiz olduğun bir ayrıntı varsa, belki bu sana yardımcı olabilir (Bu uzun makaledeki tüm yararlı bilgileri kısa bir cevaba yoğunlaştırmaya çalıştım): http://www.freelancemadscience.com/fmslabs_blog/2012/9/24/advanced-storyboard-techniques.html


4

Ayrıca bkz . Çıkış simgesini hayata geçirmek için gereksinimleri açıklayan Storyboard Unwind Segue Bağlanamıyor . Görünüm denetleyicisi hiyerarşisinde daha yukarıda olan bir yönteme sahip olmanız gerekir:

  1. IBAction olarak işaretlendi

  2. UIStoryboardSegue olan bir parametre alır *

Bu koşulların her ikisi de karşılanırsa, Çıkış simgesi onu görür ve aynı görünüm denetleyicisindeki bir düğmeden kontrol-sürükleyerek ona bağlanmanıza izin verir.

Ayrıca şimdi dünyanın en basit örneğini burada yayınladım:

https://github.com/mattneub/Programming-iOS-Book-Examples/tree/master/ch19p638presentedViewControllerStoryboard (12 Temmuz 2013 sabit)

Şimdi için segue ne kadar trivially kolay Bu gösterileri ve geri bir temsilci ve bir protokol şablonda ileri elle bilgi sırt ve (malzeme için herkese daha önce yapmak zorunda işi yerine bir takdim görünüm denetleyicisi , artık tümü silinebilir).


3

Gereksinim tanımına yardımcı olabilecek hafif bir incelik eklemek. Bu, Xcode 4.6'daki deneylere dayanmaktadır. Xcode'dan istenen kontrol-sürükleme yanıtını etkinleştirenin özellikle ve yalnızca yöntemin bildirimi (!) Olduğunu buldum. İşte tam gereksinimleri bulduğum şey:

  • Olarak işaretlendi IBAction
  • Bir olan bir parametre alır UIStoryboardSegue*
  • Bildirilmiş bir eyleminiz olmalıdır (ancak uygulanmış olması gerekmez [ .Muygulama bölümündeki bir yöntem anlamına gelir ]).
  • .MAppdelegate sınıfı dışında, herhangi bir sınıfın arabirim bildiriminde, hatta a'nın arabirim bölümünde bile olabilir . (Denetleyici hiyerarşisindeki konumuna herhangi bir bağımlılık görmedim. Herhangi bir eski dosyayı ekleyebilir ve sistem, UIStoryboardSegueparametreye sahip tüm yöntemleri bir araya getiriyor ve bunları Çıkış simgesinin menüsünde görüntülüyor gibi görünüyor .) Kontrol-sürükleme Menü, eğer yöntem film şeridi düzenleyicide işlediğiniz sahnenin sınıfındaysa, size yönteminizi bile gösterir, ancak iki nokta üst üste olmadan görünür ve çalışma zamanında herhangi bir eylemi tetiklemiyor gibi görünür.

Misal: -(IBAction)anymethodname:(UIStoryboardSegue *)myvariable;

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.