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

  • FlippinWindows | #1 Windows Tutorial Channel!

    FlippinWindo

    23 Mayıs 2010
  • metagamers

    metagamers

    13 Mayıs 2006
  • Rayone GB

    Rayone GB

    14 Temmuz 2007