2016-03-23 19 views
0

Tablo görünümü hücresinde bir görünüm tıklatıldığında görüntülenen bir popover oluşturmaya çalışıyorum. Şimdiye kadar denediğim şey. Bu benim customcell içeride ne var:Bir tablo görünümü hücresinin içinde bir görünüm tıklatıldığında bir popover düğmesi oluşturmak

else if segue.identifier == "openingHours" { 
     var vc = segue.destinationViewController 
     var controller = vc.popoverPresentationController 
     if controller != nil { 
      controller?.delegate = self 
     } 
    } 

@IBAction func openingHoursTap(sender: UITapGestureRecognizer) { 
    performSegueWithIdentifier("openingHours", sender: self) 
} 


func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle { 
    return .None 
} 

tanımlayıcı doğrudur:

class Cell: UITableViewCell { 

@IBOutlet weak var openingHoursView: CustomView! 

override func awakeFromNib() { 
    super.awakeFromNib() 
    let tap = UITapGestureRecognizer(target: self, action: Selector("openingHoursTap:")) 
    openingHoursView.addGestureRecognizer(tap) 
} 

override func setSelected(selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 
} 
} 

Bu benim bakış Kontrolörün içinde ne var. Ankraj, segue için masa resmine. Daha önce hiç taklit edilemeyen bir manzara yaratmadım, ama aynı şeyi sadece bir tuşla yaptı ve iyi çalıştı. Hata yok, uygulama görünümü tıklandığında sadece çöküyor.

Sanırım tek bir hücre için cellForRowAtIndexPath'a eklememekle ilgili bir şey olabilir. AddTarget alamıyorsam bu nasıl bir görünümle yapılır?

+0

:' tablo hücresine, ancak 'openingHoursTap ait gerçek uygulanmasında:' görünümünüzü denetleyicisi sağ mı? – TangZijian

+0

doğru, onu tableview – luke

cevap

0

Tablo görüntüleme hücrenize openingHoursTap: numaralı telefonu arıyorsunuz, ancak gerçek uygulamanız görünüm denetleyicinizde. Bu yüzden çöküyor. Bu yüzden, bunu yapmanın doğru yolu, görünüm denetleyicinize tableView: cellForRowAtIndexpath:'daki musluk hareketi tanıyıcıyı eklemektir.

Örnek: `openingHoursTap aradığınız

func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell")
let tap = UITapGestureRecognizer(target: self, action:Selector("openingHoursTap:"))
cell.openingHoursView.addGestureRecognizer(tap)
}

+0

Ahh yeah içinde uygulamak için çalışıyor mantıklı, CellForRowAtIndexpath eklemek nasıl olduğunu anlayamadım. Teşekkürler – luke

+0

Bir şey değil. – TangZijian

İlgili konular