2016-04-05 31 views
1

Çok sayıda kullanıcı verisi olan bir Kullanıcı sınıfım var. Bir kişi uygulaması gibi, bir kişi kişiye dokunduğunda bir kartviziti yüklediğinde isterim. Genellikle ben String, Int, Array, vb değerlerini geçmek için prepareForSegue ve bir storyboard segue kullanın ama ben Kullanıcı tipi bir değer göndermek nasıl anlamaya gelmiyor. Gönderen tarafında, doğru ayarlamıştım ancak alıcı görünümünü nasıl ayarlayacağımı anlayamıyorum. Nokta sözdizimini kullanmak ve her bir öğeyi ayrı ayrı yakalamak yerine, her şeyi göndermek istememin sebebi (kişi uygulaması gibi) kullanıcının iletişim kartına alan ekleyebilmesini istiyorum ve sahip olmak istemiyorum. Yapmam gerekmedikçe geçmem gereken tüm verileri yazmak.Kullanıcı tipinin bir segue üzerinde geçme değerleri

Kullanıcı sınıfı:

class User { 
    var firstName = "" 
    var lastName = "" 
    var email = "" 
    var birthday = "" 
    var team = "" 
    var schedule = "" 
    var service = "" 
    var position = "" 
    var phoneNumber = "" 
    var dateStarted = "" 
    var profileImgURL = "" 
    var notes = "" 

    init (firstName:String, lastName:String, email:String, birthday:String, team:String, schedule:String, service:String, position:String, phoneNumber:String, dateStarted:String, profileImgURL:String, notes:String) { 
     self.firstName = firstName 
     self.lastName = lastName 
     self.email = email 
     self.birthday = birthday 
     self.team = team 
     self.schedule = schedule 
     self.service = service 
     self.position = position 
     self.phoneNumber = phoneNumber 
     self.dateStarted = dateStarted 
     self.profileImgURL = profileImgURL 
     self.notes = notes 
    } 

Gönderen:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "SeeContactCardSegue" { 
     if let destVC = segue.destinationViewController as? ContactCardTVC { 
      if let indexPath = tableView.indexPathForSelectedRow { 
       let user = users[indexPath.row] 
       destVC.user = user 
      } 
     } 
    } 
} 

Alıcı:

var user:User = ??? 

ben çoğu durumda olsun, hangi kullanıcı başlatılması gerekir söyleyerek bir hata alıyorum ama Bunu nasıl başlatacağımı bilmiyorum. Bir şey mi eksik?

cevap

0

Takmayı zorla. İyi çalışmalı.

var kullanıcı: Kullanıcı!

+0

Teşekkürler! Bunu neden düşünmediğimi anlamıyorum. –

+0

herkese olur. :-) – Abhishek729

0

Farklı bir görünümü bir modal segue ile gösteriyorsanız yaptığınız aynı soruna rastladığınızı hissediyorum - destinationViewController sizin denetleyiciniz için bir UINavigationController değil.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)  { 
    if segue.identifier == "SeeContactCardSegue" { 
     let nav = segue.destinationViewController as! UINavigationController 
     let cardContactVC = nav.topViewController as! ContactCardTVC 
      if let indexPath = tableView.indexPathForSelectedRow { 
       let user = users[indexPath.row] 
       cardContactVC.user = user 
      } 

    } 
} 
: my varsayım senin destinationViewController kodunuzu aşağıdaki gibi görünmelidir bir UINavigationController olduğu doğruysa 1 aslında if let destVC = segue.destinationViewController as? ContactCardTVC bloğu giriyoruz ayıklayıcısında doğrulayıp segue.destinationViewController gerçekten ContactCardTVC

olduğunu