Пробовал понять это на некоторое время сейчас и после нескольких часов поиска решения, я решил, что пришло время спросить.Segue от UITableViewCell, нажав на изображение внутри ячейки
У меня есть табличное представление, которое заполняется пользовательскими UITableViewCells, и в настоящее время, когда вы нажимаете на ячейку, вы получаете подробный вид.
В пользовательской ячейке есть изображение, я хотел бы, чтобы пользователь мог нажать на это изображение и перейти к всплывающему VC, который показывает изображение.
У меня возникают проблемы с созданием segue при нажатии на изображение.
В файле для пользовательской ячейке, я создал кран жест распознаватель на изображение (PTAP):
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
}
У меня также есть функции в файле пользовательских ячейки для водопроводная:
func imageTapped(sender: UIGestureRecognizer) {
print("image tapped")
}
на мой взгляд, файл контроллера я добавил SEGUE в сделал выберите строку с индексом пути:
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)
}
Кроме того, в раскадровке я создал segue из VC, который хранит табличное представление с пользовательскими ячейками в VC, которые я хотел бы показать, когда изображение будет прослушиваться.
Я пробовал несколько разных способов заставить это работать и не повезло, код, который вы видите выше, остается после моих многочисленных неудачных попыток. Я чувствую, что функция для крана в пользовательском файле ячейки и segue в файле VC является частью решения, поэтому я их оставил.
Любая помощь будет оценена. Благодаря!
Updates закодировать из ответов ниже: протокол
Добавлено
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")
}
Объявлены делегат в главном VC
weak var delegate:postCell?
Assigned Del Ворота
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")
}
}
ли вы создали делегат на свой мобильный вид таблицы? –
Эй, Ран, нет, я не – ryanbilak