Nasıl prepareForSegue geçmek: bir nesne | Netgez.com
SORU
23 EKÄ°M 2011, Pazar


Nasıl prepareForSegue geçmek: bir nesne

Bir mapview (2* *düğmeleri ile) pek çok açıklamalar var. Düğme tableview mapview Bu bir geçiş yapacak. Hangi çağrı düğmesi tıklandığında tableview farklı bir nesne veri tutan () bağlı olarak geçmek istiyorum.

Örneğin: (tamamen uydurma)

  • annotation1 (Austin) ->veri n 1 (Austin alakalı) geçirir
  • annotation2 (Dallas) ->veri n 2 (Dallas ilgili) geçirir
  • annotation3 (Houston) ->pass veri ve diÄŸerleri... (olsun 3 n fikir)

Çağrı düğmesi tıklandığında olduğu tespit edebiliyorum.

prepareForSegue kullanıyorum: hedef ViewController. Veri n geçmesi Bu ara n ı gerektiren veriler için ekstra bir argüman yapamazsınız beri, aynı etkiye (dinamik veri n) elde etmek için bazı zarif yolu nedir?

Herhangi bir ipucu mutluluk duyacağız.

CEVAP
23 EKÄ°M 2011, Pazar


Sadece prepareForSegue: hedef görünümü denetleyicisi için bir referans yöntem alıp gereken herhangi bir nesne geçmek. İşte size bir örnek...

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Make sure your segue name in storyboard is the same as this line
    if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
    {
        // Get reference to the destination view controller
        YourViewController *vc = [segue destinationViewController];

        // Pass any objects to the view controller here, like...
        [vc setMyObjectHere:object];
    }
}

DÜZELTME: ayrıca yeni bir görünüm bir seçim veya düğmesine basın dayalı geçiş etkinleştirmek için performSegueWithIdentifier:sender: yöntemi kullanabilirsiniz.

Örneğin, iki görünümü denetleyicileri vardı düşünün. İlk üç düğme ve ikinci geçiş daha önce basılı olan bilmesi gerekir içerir. Düğmeler performSegueWithIdentifier: yöntemi kullanan kod IBAction kadar, böyle gönderebilirsen...

// When any of my buttons are pressed, push the next view
- (IBAction)buttonPressed:(id)sender
{
    [self performSegueWithIdentifier:@"MySegue" sender:sender];
}

// This will get called too before the view appears
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"MySegue"]) {

        // Get destination view
        SecondView *vc = [segue destinationViewController];

        // Get button tag number (or do whatever you need to do here, based on your object
        NSInteger tagIndex = [(UIButton *)sender tag];

        // Pass the information to your destination view
        [vc setSelectedButton:tagIndex];
    }
}

Bu yardımcı olur umarım. Ne demek istediğimi basit bir düğme ve tek bir görünüm uygulaması (ekstra bir görünüm ile) dayalı olarak görebilmeniz için bir test projesi yükledim. You can get it here.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • PorterRobinsonVEVO

    PorterRobins

    11 Kasım 2013
  • SamsTech

    SamsTech

    4 NÄ°SAN 2014