2015-01-12 17 views
8

Merak ediyorum meraklı bir UITableView davranışı ile karşı karşıyayım ve bunun nereden geldiğini bilmiyorum. İçinde bir ViewController ve içinde bir UITableView ve bir özel Görüntü hücresi ile çok basit bir tek görünüm IOS8 Swift uygulaması yapıyorum. Bir hücreye dokunduğumda SecondViewController numaralı telefonuma git.UITableView didSelectRowAtIndexPath bazen ikinci musluktan sonra aradı

UITableView temsilcisim ve veri kaynağım ilk ViewController'a bağlandı. Her şey bir hücreye dokunduğum zamanlar dışında çalışıyor, bazen Segue'i tetiklemek için iki kez dokunmam gerekiyor.

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    println("You clicked on \(indexPath.row) row") 
    self.performSegueWithIdentifier("homeToDetail", sender:self) 
} 

My baskı her zaman doğru indexPath dönüyor:

İşte benim didSelectRowAtIndexPath fonksiyonudur. Bir görünüm hiyerarşi sorunu mu yoksa başka bir şey mi?

Teşekkür ederiz JD

+0

İlginç düzeltmek için [tableView deselectRowAtIndexPath:indexPath animated:YES]; aramak zorunda, biraz daha fazla kod paylaşabilirim? Bu simülatör veya gerçek cihazda mı? – Woodstock

+0

simülatör ve gerçek cihaz –

+0

'println' sadece bir kez mi, yoksa iki kere mi tetiklenir? – pbasdf

cevap

10

Bunu deneyin.

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    dispatch_async(dispatch_get_main_queue(), { 
    self.performSegueWithIdentifier("homeToDetail", sender:self) 
    }) 
} 

Bu

iOS 8'de bir hata olduğunu, sanırım. UITableViewCell selection Storyboard segue is slow - double tapping works though

+0

İlginç, çağrıyı ana sıraya itmek, hata için bir çözümdür? – Woodstock

+0

Diğer iki erkek için de böyle çalıştı. garip olsa da. – rakeshbs

+0

Teşekkür ederim, şimdi düzgün çalışıyor! –