Uygulamamda bir liste görünümü var ve oradaki hücreleri dinamik olarak ekliyorum. Her bir hücre için bir segue eklemek istiyorum ve kullanıcı bir hücreye bastığında bir UIViewController (FullUser
olarak adlandırılır) açın (bu UIViewController kullanıcı tarafından seçilen belirli bir hücreden getirilen, bu segue tarafından geçirilen veri içerecektir yapı SingleUser
olarak adlandırılmıştır. SonraNeden göndericiyi readyForSegue yöntemimde hızlıca gönderemiyorum?
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var cell: UITableViewCell = tableView.cellForRowAtIndexPath(indexPath) as! SingleEventCell
let user = self.items[indexPath.row] as? SingleUser
self.performSegueWithIdentifier("fullUserFromListSegue", sender: user)
}
ve: yüzden bu yöntemi var
var fullUserDetails: FullUser?
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "fullUserFromListSegue"){
fullUserDetails = segue.destinationViewController as? FullUser
//now I want to set the textfield on the other panel:
let user2 = sender as? SingleUser
var username = user2?.username
fullRequestDetails!.username.text = username!
}
}
ama hata alıyorum ve ben ayıklayıcısında onu kontrol ediyorum zaman user2
nil olduğunu görüyoruz. Neden öyle? Orada bir SingleUser
nesnesi saklamak istiyorum, oraya nasıl geçebilirim?
(sizin kadar olabildiğince
!
unwrapping kuvvetini kaçınmalıdır) yerine kuvvet unwrap kullanmanınif
yılında isteğe bağlı öğeleri unwrapping öneririm her iki durumda da aynı. Varsayımlarınızı kontrol etmek için çalışırken bu türleri kontrol etmek için 'dynamicType' özelliğini kullanmayı deneyebilirim. Yazdırmayı deneyin ("Gönderen Türü \ (sender.dynamicType)") 'yorumunuzu burada bulabilirsiniz. – JMFRBu sorudaki cevabın size yardımcı olup olmadığını bildirin: http://stackoverflow.com/questions/35849931/getting-object-for-tapped-uitableviewcell-in-new-uiview/35850088 –
"Kullanıcı" değişkeni değil mi? segue yerine gelmeden önce? –