В Swift, похоже, нет сообщений SO dismissMoviePlayerViewControllerAnimated
, поэтому я думаю, что я убью вещи.ОтклонитьMoviePlayerViewControllerAnimated не работает в Swift
У меня есть ячейка таблицы, когда вы долго нажимаете на нее, она отображает видео. Когда видео заканчивается, моя цель - вернуть пользователя обратно в представление таблицы. Эта последняя часть - это бит, который не работает.
Любая помощь здесь будет принята с благодарностью. Я прочитал документы Apple и некоторые сообщения об этом в Objective-C. Кажется, что ответ заключается в том, чтобы запустить dismissMoviePlayerViewControllerAnimated
, метод на UIViewController, но он не работает.
import UIKit
import MediaPlayer
class ViewController: UIViewController {
var moviePlayer:MPMoviePlayerController!
@IBOutlet weak var longPressView: UIView!
let longPressRec = UILongPressGestureRecognizer()
func longPressedView() {
playVideo()
}
func videoHasFinishedPlaying(notification: NSNotification){
println("Video finished playing")
self.dismissMoviePlayerViewControllerAnimated()
// not returning me to the ViewController
}
func playVideo() {
// get path and url of movie
let path = NSBundle.mainBundle().pathForResource("IMG_8602", ofType:"MOV")
let url = NSURL.fileURLWithPath(path!)
moviePlayer = MPMoviePlayerController(contentURL: url)
// construct the views
moviePlayer.view.frame = self.view.bounds
self.view.addSubview(moviePlayer.view)
moviePlayer.fullscreen = true
// remove controls at top and bottom of video
moviePlayer.controlStyle = MPMovieControlStyle.None
// add event observer for videoHasFinsihedPlaying
NSNotificationCenter.defaultCenter().addObserver(self, selector: "videoHasFinishedPlaying:",
name: MPMoviePlayerPlaybackDidFinishNotification, object: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
longPressRec.addTarget(self, action: "longPressedView")
longPressView.addGestureRecognizer(longPressRec)
longPressView.userInteractionEnabled = true
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Спасибо, медведь с ним. Я изменил все элементы MPMoviePlayerController на 'MPMoviePlayerViewController'. Это также требует, чтобы я назвал 'moviePlayer.moviePlayer.controlStyle = MPMovieControlStyle.None' (обратите внимание на двойной' moviePlayer'. Первое - это имя var, второе - метод 'MPMoviePlayerViewController' –