SORU
24 EYLÜL 2012, PAZARTESİ


Geçişlerini için Dinlenmek nedir ve nasıl kullanılır?

ve böyle büyük mükafat 4.5 iOS 6 yeni bir özellik olarak anmıştır "": . Gevşemek Geçiş

Gevşemek dedirtiyor film şeridinde sahnelerde mevcut örnekleri için geçiş izin verebilirsiniz

4.5. " Güncellemelerinden sürüm notları bu kısa giriş ek olarak, UİViewController şimdi yeni birkaç yöntem daha var gibi:

- (BOOL)canPerformUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender
- (UIViewController *)viewControllerForUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender
- (UIStoryboardSegue *)segueForUnwindingToViewController:(UIViewController *)toViewController fromViewController:(UIViewController *)fromViewController identifier:(NSString *)identifier

Nasıl geçişlerini ve iş için kullanılabilir ne Gevşeyin?

CEVAP
5 NİSAN 2013, Cuma


Özetle

Biraklıma geldi şimdi gevşeyin(bazen denirçıkış buluyorgeri bas, kalıcı veya popover dedirtiyor gezinti çubuğu, gezinti öğesi attı, popover kapalı veya yöntemdir sunulan görünümü denetleyicisi görevden gibi ) gezinmek için kullanılabilir. Bunun üzerine aslında sadece bir değil, itme/kalıcı/popover dedirtiyor, örneğin "geri dön" gevşemek tek bir eylem ile navigasyon hiyerarşi içinde birden çok adım. bir dizi dinlenmek üzerinden yapabilirsiniz

Gerçekleştirmek için bir geçiş gevşemek, gevşemek için istediğiniz görünüm denetleyicisi bir eylem yöntemi bir eylem belirtmeniz gerekir.

Objective-C:

- (IBAction)unwindToThisViewController:(UIStoryboardSegue *)unwindSegue
{
}

Swift:

@IBAction func unwindToThisViewController(segue: UIStoryboardSegue) {
}

Bu eylem yöntemin adı bu film aklıma geldi şimdi gevşeyin oluşturduğunuzda kullanılır. Ayrıca, bu yöntem aklıma geldi şimdi gevşeyin gerçekleştirilen hemen önce çağrılır. Kaynak UIStoryboardSegue segue başlatan görünüm denetleyicisi ile etkileşim parametresi geçirilen (özelliği kalıcı bir görünüm denetleyicisi değerleri almak için örneğin) denetleyicisi görünüm elde edebilirsiniz. Bu bağlamda, yöntem UIViewController prepareForSegue: yöntem olarak benzer bir işlevi vardır.

iOS 8 güncelleme:Gevşemek geçişlerini de iOS 8, Bu adaptif dedirtiyor olarak çalışırGösterveAyrıntı Göstermek.

Bir Örnek

Bize bir gezinti denetleyicisi ve üç çocuk görünümü denetleyicileri ile bir film şeridi var

enter image description here

Yeşil Görünüm Denetleyicisi (geri dönmek) Kırmızı Görünüm Denetleyicisi için gevşeyebilirsiniz. Mavi ve Kırmızı ile Yeşil Yeşil ya da gevşeyebilirsiniz. Kırmızı ve Yeşil için özel eylem eklemek gerekir, örneğin burada dinlenmek etkinleştirmek için Kırmızı eylem yöntemi:

Objective-C:

@implementation RedViewController

- (IBAction)unwindToRed:(UIStoryboardSegue *)unwindSegue
{
}

@end

Swift:

@IBAction func unwindToRed(segue: UIStoryboardSegue) {
}

Eylem yöntemi eklendikten sonra bu film aklıma geldi şimdi gevşeyin control-sürükleme Çıkış simgesi ile tanımlanır. Burada düğmeye basıldığında Yeşil Kırmızı dinlenmek istiyoruz:

enter image description here

Görünüm denetleyicisi olarak tanımlanır için dinlenmek istiyorum: eylem seçmeniz gerekir

enter image description here

Ayrıca maviden Kırmızıya gevşeyebilirsiniz "iki adım" gezinti yığını). uzaklıktaki ( Anahtar doğru gevşemek eylemi seçmektir.

Bu segue yapılır gevşemek önce, eylem yöntemi olarak adlandırılır. Bu örnekte her ikisi de Yeşil ve maviden Kırmızıya geçiş dinlenmek İ tanımladı. UİStoryboardSegue parametre üzerinden eylem gevşemek yöntemi kaynağına ulaşabiliriz:

Objective-C:

- (IBAction)unwindToRed:(UIStoryboardSegue *)unwindSegue
{
    UIViewController* sourceViewController = unwindSegue.sourceViewController;

    if ([sourceViewController isKindOfClass:[BlueViewController class]])
    {
        NSLog(@"Coming from BLUE!");
    }
    else if ([sourceViewController isKindOfClass:[GreenViewController class]])
    {
        NSLog(@"Coming from GREEN!");
    }
}

Swift:

@IBAction func unwindToRed(unwindSegue: UIStoryboardSegue) {
    if let blueViewController = unwindSegue.sourceViewController as? BlueViewController {
        println("Coming from BLUE")
    }
    else if let redViewController = unwindSegue.sourceViewController as? RedViewController {
        println("Coming from RED")
    }
}

Gevşemek, itme/kalıcı geçişlerini bir kombinasyonu ile çalışır. E. g. eğer kalıcı bir geçiş ile başka bir Sarı görünüm denetleyicisi ekledim, tek bir adımda Sarı dan Kırmızı geri gevşeyin.

enter image description here

Kod gevşemek

Sen bir kontrol sürükleyerek görünümü denetleyicisi Çıkış sembolü için bir şey ile tanımlamak dinlenmek geçiş olduğunda, yeni bir geçiş Belgesi Anahat görünür:

enter image description here

Segue seçme ve Niteliklerini olacak Müfettiş "" özelliği. Tanımlayıcı ortaya koymaktadır Bu amacın için benzersiz bir tanımlayıcı vermek için kullanın:

enter image description here

Bundan sonra gevşemek bir zaman, başka bir zaman gibi kodundan yapılabilir:

Objective-C:

[self performSegueWithIdentifier:@"UnwindToRedSegueID" sender:self];

Swift:

performSegueWithIdentifier("UnwindToRedSegueID", sender: self)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Brandon McCrary

    Brandon McCr

    15 Ocak 2012
  • Plugable

    Plugable

    19 Mayıs 2010
  • SomeOne Pro

    SomeOne Pro

    25 EKİM 2013