テーブルビューのセル内のビューをクリックすると表示されるポップオーバーを作成しようとしています。これまで私が試したことは次のとおりです。 これは私が私のcustomcellの内側に持っているものです。Popview Segueを作成してテーブルビューのセル内のビューをクリックする
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
}
識別子が正しい:
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)
}
}
これは私が私のビューコントローラの内部で持っているものです。アンカーは、セグエのテーブルビューです。以前はタップ可能なビューを実際に作成したことはありませんでしたが、ボタンで同じことをやっただけでうまくいきました。エラーは発生せず、ビューをクリックするとアプリがクラッシュするだけです。
私は、個々のセルのcellForRowAtIndexPathにそれを追加しないことが私には関係していると推測しています。 addTargetを使用できない場合、これはビューでどのように行われますか?
あなたはopeningHoursTap '呼び出している:あなたのテーブルセルに'が、openingHoursTap 'のあなたの実際の実装は:'あなたのビューコントローラの右にありますか? – TangZijian
正しい、私のテーブルビュー内でそれを実装しようとしている – luke