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
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.
Tek bir nesne geçmek için [nasıl] para...
Nasıl NSNotificationCenter ile nesne g...
Nasıl verimli bir şekilde anahtarları/...
Nasıl bir nesne JavaScript özelliği ol...
Nasıl JavaScript bir nesne gösterebili...