Container viewを用いて上半分を動画ビュー
下半分をTableviewで動画を選択するように実装しているのですが
下のtableviewから上の動画ビューの再生を制御したくて親ビューの取得をしたいですが以下のコードで動画ビューのプレイヤーを取得再生を試みたのですが
Swift3
1let parentController = self.parent as! ViewController 2parentController.playerView!.playVideo()
Could not cast value of type 'UINavigationController' (0x1b367f748) to 'アプリ名.ViewControll
で型違いでcastできなかったので別の方法でUIviewcontrollerにidをつけと以下のコードで
Swift3
1let parent = storyboard!.instantiateViewController(withIdentifier: "player"); 2parent.viewDidLoad()
viewdidloadは読めるようになったのですがviewdidloadからplayVideo()を読んでも何も反応がありませんでした。
tabelviewから動画ビューを制御する方法他にありましたら教えてください。
動画ビューコード
import UIKit import youtube_ios_player_helper //class ViewController: UIViewController ,UITableViewDelegate, UITableViewDataSource, YTPlayerViewDelegate { class ViewController: UIViewController, YTPlayerViewDelegate { @IBOutlet weak var playerView: YTPlayerView? var appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.playerView?.delegate = self self.playerView?.sizeToFit() let vars = ["playsinline": 1, "controls": 2, "showinfo": 0, "origin":"https://www.google.com"] as [String : Any] playerView?.load(withVideoId: self.appDelegate.selectMV, playerVars: vars) print("読み込みVideo確認",self.appDelegate.selectMV) } func playerViewDidBecomeReady(_ playerView: YTPlayerView) { print("通過確認中") playerView.stopVideo() playerView.playVideo() } }
追記
オレンジ:ViewCon
水色:UpperCon
赤:LowerConのように回答頂いたコードを利用し試みましたが
Could not cast value of type 'UINavigationController' (0x10f188f18) to 'アプリ名.ViewController' (0x10c679bf0).
(lldb)
となり同様のエラーとなりました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/23 12:00 編集
2016/09/25 07:46