2016-04-08 22 views
0

kullanarak başka bir Viewcontrol'e geçiriyorum Vocab uygulamasını yapmaya çalışıyorum. İlk ViewController statik bir tablodur, kullanıcı ezberlemek istediğiniz kelimenin tarihini seçebilir. Tüm day_vocabulary dizileri bu ViewController'da, bir dizi 30 kelime haznesi içeriyor, 90 gün boyunca kelime bilgim var. Kullanıcı bir tarih seçtiğinde,Belirli bir verileri ViewForSegue

Bu ViewCotroller, 30 kelime içeren bir başka görünüme bir dizi geçirir. Burada, özel bir veriyi başka bir ViewControl'e 90 sege kullanarak geçmeye çalıştım, hiç de iyi görünmüyor. Ayrıca ben başka yazı okuyarak film şeridi kullanmadan segue ait tanımlayıcı ayarlayamıyor, Yani sonuç aynı olacağını fark

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    if indexPath.section == 0 && indexPath.row == 0 { 
     performSegueWithIdentifier("dayVocab1", sender: nil) 

    } 

} 

, böyle didSelectRowAtIndexPath kullanmaya çalıştı.

Sadece bir segue kullanarak belirli verilerin aktarıldığını bilmek istiyorum.

Hazırlık için başka bir kodum var. prepareForSegue fonk

geçersiz kılma (: UIStoryboardSegue, gönderen: segue? AnyObject) {

if (segue.identifier == "dayVocab1") { 

    let destViewController : ViewController = segue.destinationViewController as! ViewController 
     destViewController.vocabData = vocab_day1p1 
     destViewController.meaningData = meaning_day1p1 

    } 

    if (segue.identifier == "dayVocab2") { 

     let destViewController : ViewController = segue.destinationViewController as! ViewController 
     destViewController.vocabData = vocab_day1p2 
     destViewController.meaningData = meaning_day1p2 

    } 

} gönderene kullanarak düşünüyorum

,

çözümün anahtarıdır bana ne bilemez bildirin lütfen Bunun için en iyi çözüm olmak.

Teşekkür ederiz.

cevap

1

Sizinle aynı fikirdeyim ki 90 cürümleri korumak için çok fazla şey var. Kodlarınızdan, belirli bir günün vokalini görüntülemek için aynı ViewController'ı kullandığınızı rahatlıkla söyleyebilirim? Yani, sizi aynı ViewControllers'a yönlendiren 90 görevliye ihtiyacınız yok. Sadece farklı veriye geçmeniz gerekiyor, böylece o gün için farklı kelimeler gösterecek. İşte ne yapardım geçerli:

sizin didSelectRowAtIndexPath yılında "dayVocab"

tanımlayıcı ile yeni ViewController için tableView itibaren bir segue oluşturun, kodlar şu şekilde görünecektir:

if indexPath.section == 0 && indexPath.row == 0 { 
    performSegueWithIdentifier("dayVocab", sender: "dayVocab1") 
    } 

Sonra prepareForSegue:segue:sender yöntemde, böyle yapmak:

elbette
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if(segue.identifier == "dayVocab"){ 
     // do somechecking on the sender's type to make sure it is unwrapped properly 
     if let day = sender as! String { 

      if(day == "dayVocab1"){ 
       let destViewController : ViewController = segue.destinationViewController as! ViewController 
       destViewController.vocabData = vocab_day1p1 
       destViewController.meaningData = meaning_day1p1 
      }else if(day == "dayVocab2"){ 
       let destViewController : ViewController = segue.destinationViewController as! ViewController 
       destViewController.vocabData = vocab_day1p2 
       destViewController.meaningData = meaning_day1p2 
      } 

     } 
    } 
} 

, Bu kodlar test edilmemiştir ve bakımın gereksinimlerine uyacak şekilde modifiye edilmemiştir.

+0

Artık 89 segues gerekli! –

+0

Sizin için çalıştığına sevindim. Çok teşekkür ederim. Şerefe – rach

İlgili konular