2012-03-07 14 views
7

Şu anda XCode 4.3'te Storyboard ile inşa ettiğim bir iPhone uygulamasına sahibim. UIWebView içeren bir görünüm denetleyicisine iki (2) adet sekeli bir "kök" görüntü denetleyicim var. Ben (zaten hem segues için benzersiz tanımlayıcılar ayarladık) segue tespit edebilmek istiyorum bu yüzden hangi segue dayalı UIWebView, "iten" doğru içerik "kök" görünümü denetleyicisi aktive edilmiş olabilir.Aynı görüntü denetleyicisine giden iki cemiyet nasıl ele alınır?

ben "prepareForSegue" yöntemini kullanmak zorunda düşünüyorum ama nereye gideceğini bilmiyorum. Aynı görüntü denetleyicisine giden iki seferin nasıl ele alınacağını nerede bulabilirim? (Onu Google’da okudum ve durumumla ilgili hiçbir şey bulamadım).

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:@"helpSegue"]) { 
     NSLog(@"helpSegue"); 
    } 
    else if ([segue.identifier isEqualToString:@"reportSegue"]) { 
     NSLog(@"reportSegue"); 
    } 
} 

cevap

3

Sen -prepareForSegue:sender: aramayacağım, kendi bakış denetleyicisi bunu uygulamak gerekir: Burada

kullanıyorum kodudur. Eğer eylem hangi segue geçişi neden olan bağlı çeşit atalım

if ([segue.identifier isEqualToString:@"Segue Numero Uno"]) { 
    // do something here 
} 

: o yöntemin o en geçersiz kılma olarak, Segue en identifier özelliği (segue bir parametre olarak geçirilen) kontrol edebilirsiniz. Hikaye panosu düzenleyicisinde her segue için tanımlayıcıyı ayarlayabilirsiniz.

Güncelleme: Eğer (Ben sorunuza eklediğiniz) yorumunuzda sağlanan kodu dayanarak, artık doğru bir fikir var. Bu noktada, sadece eski moda hata ayıklama meselesi. Bazı şeyler kontrol etmek:

  • Storyboard'unuza görünümü denetleyicisi bu -prepareForSegue:sender: uygulayan sınıfın bir örneği olarak ayarlayın (soru kurşun Segues için yani bir) mi? Kontrol panelindeki kontrolörün tipini kontrol edin.

  • kodunuzda kullanmak dizeleri mı tam olarak şeridine da segues için belirlenen tanımlayıcıları maç? Büyük harf kullanımı, yazım, noktalama işaretleri ve beyaz alan tüm sayılır.

  • sizin -prepareForSegue:sender: yöntem aranıyor mu? Orada bir kırılma noktası koy ve hata ayıkla. Eğer çağrılıyorsa, içeri aktarılan segue için tanımlayıcı nedir? Eğer çağrılmıyorsa, film şeridindeki görüntüleme denetleyicisi doğru sınıfa sahip değil.

+0

teşekkür ederim, teşekkür ederim, teşekkür ederim! Tam olarak ihtiyacım olan şey buydu ... – SpokaneDude

+0

Oops ... Üzgünüm, ama "seque.identifier.isEqualToString yöntemi yok ..." (void) [prepareForSegue'i projede tek denetleyici olan ViewController.m'ye koyuyorum. yanlış bir şey mi yaptım? – SpokaneDude

+0

'-isEqualToString:' NSString'in bir yöntemi (bir özellik değil) UIStoryboardSegue'ın 'identifier' özelliği bir NSString'dir. Yani yukarıdaki kodda gördüğüm gibi kullanırsınız. 'BOOL IsEqual = [isEqualToString segue.identifier: "foo" @];.' size (gerçekten sadece özellikleri için kullanmak gerektiği halde) bir parametre almaz herhangi bir yöntemi çağırmak için nokta sözdizimini kullanabilirsiniz doğrudur, ama -isEqualToString: '* bir parametre alır, bu yüzden nokta sözdizimi tamamen dışarıdadır. – Caleb

İlgili konular