これをしばらくの間把握しようとしていて、解決策を探して数時間後に私はそれを聞く時間だと決めました。セル内の画像をタップすることでUITableViewCellのSegue
カスタムUITableViewCellsによって読み込まれるテーブルビューがあります。現在、セルをタップすると詳細ビューに移動します。
カスタムセル内にイメージがあります。ユーザーがそのイメージをタップし、イメージを表示するポップオーバーVCにセグメンテーションできるようにしたいと思います。
私が問題を抱えているのは、画像がタップされたときにセグを作成することです。私ものカスタムセルファイル内の関数を持っている
override func awakeFromNib() {
super.awakeFromNib()
let tap = UITapGestureRecognizer(target: self, action: #selector(PostCell.voteTapped(_:)))
let ptap = UITapGestureRecognizer(target: self, action: #selector(PostCell.imageTapped(_:)))
tap.numberOfTapsRequired = 1
ptap.numberOfTapsRequired = 1
voteImage.addGestureRecognizer(tap)
voteImage.userInteractionEnabled = true
featuredImg.addGestureRecognizer(ptap)
featuredImg.userInteractionEnabled = true
}
:カスタムセルのためのファイルで
は、私がイメージ (PTAP)上でタップジェスチャー認識を設定しましたタップ: :私のビューコントローラファイルでfunc imageTapped(sender: UIGestureRecognizer) {
print("image tapped")
}
私はインデックスパスで行った選択行のセグエを追加しました
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let post: Post!
if inSearchMode {
post = filteredVenues[indexPath.row]
} else {
post = posts[indexPath.row]
}
print(post?.venueName)
performSegueWithIdentifier("imageTapped", sender: nil)
performSegueWithIdentifier("DetailsVC", sender: post)
}
また、ストーリーボードでは、VCからカスタムセルを含むテーブルビューを保持するVCからSegueを作成しました。これは、画像がタップされたときに表示したいVCです。
私はこれを動作させるためにいくつかの方法を試しましたが、幸運を覚えていませんでした。カスタムセルファイルのタップ機能とVCファイルのセグがソリューションの一部であると感じているので、私はそれらを残しておきます。
何か助けていただければ幸いです。ありがとう!
メインVC デルを割り当てweak var delegate:postCell?
で
追加プロトコル
protocol ImageSegueProtocol: class {
func imageTapped(row: Int)
}
class PostCell: UITableViewCell {
追加IABのFunc
@IBAction func imageTapped(sender: UIGestureRecognizer) {
guard let row = row else { return }
delegate?.imageTapped(row)
print("image tapped func")
}
宣言デリゲート:以下の回答からコーディングする
アップデートあなたがする必要がどのようなゲート
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
//let post = posts[indexPath.row]
if let cell = tableView.dequeueReusableCellWithIdentifier("PostCell") as? PostCell {
var img: UIImage?
var vImg: UIImage?
postCell?.delegate = self
追加拡張機能
extension FeedVC: ImageSegueProtocol {
func imageTapped(row: Int) {
if inSearchMode == true {
let object = filteredVenues[row]
performSegueWithIdentifier("imageTapped", sender: object)
print("ext func")
} else {
let object = posts[row]
performSegueWithIdentifier("imageTapped", sender: object)
print("ext func")
}
}
あなたは、テーブルビューのセルにデリゲートを作成しました:あなたがセグエ前に、任意の設定を行いたい場合は
その後、最初のVCであなたのようなものがあるだろうか? –
ちょっと蘭、私はしなかった – ryanbilak