В таблице три ячейки, в каждой из которых есть дополнительная кнопка, выполняющая конкретную задачу. Как присвоить такую кнопку к своей ячейке в которой находится? В ячейки инфа берется из массивов, для каждой ячейки свой элемент массива, так же и по нажатию на кнопку. те по нажатию на кнопку расположенную в одной из ячеек необходимо отображать инфу относящуюся именно к этой ячейке
Нажатие на отдельную кнопку в кастомной ячейке
В классе вашей кастомной ячейки создайте экшн нажатия кнопки.
Как понимаю, вам по нажатию надо перейти на другую сцену? Тогда создаете в том же классе ячейки делегат, который будет вызыватся при нажатии на кнопку. Ваш вью контроллер будет confirms к нему (делегату), ну и в методе делегата уже реализуете переход.
Ну или можете в ячейку передавать ссылку на вью контроллер и тогда в классе ячейки делать переход.
Ох… Запутался)) по нажатию на ячейку переходим на др контроллер, а по нажатию на кнопочку просто воспроизводится локальное видео к этой ячейке без переходов на др контроллер.
Просто создав экш и нажимая на кнопку по нажатию на кнопки проигрывается одно видео, а нужно, чтобы у каждой кнопки свое
import UIKit
import AVKit
import AVFoundation
class BreathViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var playerVC = AVPlayerViewController()
var playerView = AVPlayer()
@IBOutlet weak var tableView: UITableView!
let video = ["1","2","3"]
let nameWorkout = ["Начало ", "Сдерживание ", "Усиление "]
let descriptionWorkout = ["Во время дыхания надуваем живот", "Во время дыхания не зыбывайте дышать животом", "Во время дыхания дишим животом"]
override func viewDidLoad() {
super.viewDidLoad()
let videoString: String? = Bundle.main.path(forResource: video[???], ofType: ".mp4") // CЮДА НЕОБХОДИМО ПЕРЕДАТЬ ВИДЕО В ЗАВИСИМОСТИ ОТ ЯЧЕЙКИ
if let url = videoString {
let fileURL = NSURL(fileURLWithPath: url)
playerView = AVPlayer(url: fileURL as URL)
playerVC.player = playerView
}
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let myCell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! BreathViewControllerCell
myCell.nameWorkout.text = nameWorkout[indexPath.row]
myCell.descriptionLabel.text = descriptionWorkout[indexPath.row]
return myCell
}
@IBAction func videoButtonTapped(_ sender: UIButton) {
self.present(playerVC, animated: true) {
self.playerVC.player?.play()
}
}
Так, стоп. Видео проигрывается не в ячейке?
Было бы лучше, если бы я видел весь проект, а то теперь я уже запутался.
Вот кусочек проекта https://yadi.sk/d/At_WodiR38Wqxz. Можешь глянуть еще ошибку в файле UIDevice, все работает но ошибка висит. Использую чтоб в пятых фонах текста поменьше отображалось, а в остальных полный текст. Спасибо
Поправил код. На счет ошибки - вы имеете ввиду “will newer be executed” warning? Если так - он будет отображатся, если у вас не подключен телефон к компьютеру, т.к.
if DEVICE_IS_SIMULATOR == true
Всегда будет true.
Значит можно не исправлять и спокойно выкладывать в стор, на девайсе будет корректно? У меня просто айфона нет протестировать (( А за кнопку ОГРОМНОЕ СПАСИБО, очень помог !!!