У меня возникла новая проблема в ожидании решения. Сейчас у меня немного проводная компоновка. Мой MainView - TableView, в одной из 6 пользовательских ячеек есть одна ячейка, в которой есть TableView. Нажимая на ячейку этого внутреннего tableView, я хочу, чтобы segue был новым YTPlayerViewController, представлением для просмотра видео с YouTube с использованием классов Googles YThelper.prepareForSegue из пользовательского UITableViewCell
Проблема в том, что вещи performSegueWithIdentifier
и override func prepareForSegue
не работают, потому что я должен обрабатывать их в своем обычном классе UITableViewCell, который не знает этих функций.
Есть ли альтернатива?
Я просто хочу передать свое видеоизображение из ячейки в YTPlayerViewController, открыть его и воспроизвести видео. Оттуда должно быть возможно вернуться назад.
надеюсь, что вы, ребята, можете понять и помочь мне.
Привет из германии
Мой класс:
class DetailVideoCell: UITableViewCell , UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var selectedVideoIndex: Int!
/*override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showPlayer" {
let playerViewController = segue.destinationViewController as! YTPlayerViewController
playerViewController.videoID = Data.youTubeVideos[selectedVideoIndex]["videoId"] as! String
}
}*/
// MARK: TableViewDataSource functions.
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return Data.youTubeVideos.count ?? 3
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: VideoDetailCell = tableView.dequeueReusableCellWithIdentifier("VideoDetailCell") as! VideoDetailCell
let url = NSURL(string: Data.youTubeVideos[indexPath.row]["thumbnail"] as! String)
let data = NSData(contentsOfURL: url!)
let image = UIImage(data: data!)
cell.videoThumbnail.image = image
cell.channelTitle.text = Data.youTubeVideos[indexPath.row]["channelTitle"] as? String
cell.videoTitle.text = Data.youTubeVideos[indexPath.row]["title"] as? String
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
selectedVideoIndex = indexPath.row
print(selectedVideoIndex)
//performSegueWithIdentifier("showPlayer", sender: indexPath)
}
}
почему этот материал не работает? Вы должны передать их в свой класс контроллера tableView, а не в подклассу tablecell. –
Да, но мой контроллер таблиц - это мой tableviewcell. – kuemme01
Вы реализуете 'UITableViewDelegate' где угодно? – frankfg