Ios removeFromSuperview不工作-Swift
请参阅下面的代码。当按下“完成”按钮或视频停止播放时,我试图从视图中删除视频子视图。我在代码中没有显示错误,但是removeFromSubview方法似乎不起作用。我不确定我的语法是否错误,或者是否与iAction方法中的movieplayer代码和viewDidLoad下面的moviePlayBackDidFinish有关。任何建议都将不胜感激。谢谢Ios removeFromSuperview不工作-Swift,ios,xcode,swift,Ios,Xcode,Swift,请参阅下面的代码。当按下“完成”按钮或视频停止播放时,我试图从视图中删除视频子视图。我在代码中没有显示错误,但是removeFromSubview方法似乎不起作用。我不确定我的语法是否错误,或者是否与iAction方法中的movieplayer代码和viewDidLoad下面的moviePlayBackDidFinish有关。任何建议都将不胜感激。谢谢 import Foundation import UIKit import MediaPlayer class VideoViewContro
import Foundation
import UIKit
import MediaPlayer
class VideoViewController: UIViewController {
var moviePlayer:MPMoviePlayerController!
@IBAction func videoLaunch(sender: AnyObject) {
playVideo()
}
func playVideo() {
let path = NSBundle.mainBundle().pathForResource("MyVideo", ofType:"mp4")
let url = NSURL.fileURLWithPath(path!)
moviePlayer = MPMoviePlayerController(contentURL: url)
if let player = moviePlayer {
player.view.frame = self.view.bounds
moviePlayer?.controlStyle = MPMovieControlStyle.Fullscreen
player.prepareToPlay()
self.view.addSubview(player.view)
}
}
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "moviePlayBackDidFinish:",
name: MPMoviePlayerPlaybackDidFinishNotification,
object: moviePlayer)
func moviePlayBackDidFinish(notification: NSNotification){
self.view.removeFromSuperview()
}
}
}
您正在尝试删除
self.view
而不是moviePlayer.view
将您的movieplaybackdidfish
代码更改为:
func moviePlayBackDidFinish(notification: NSNotification)
{
if let player = moviePlayer
{
player.view.removeFromSuperview()
}
}
谢谢获取以下错误;[CGC.VideoViewController moviePlayBackDidFinish:]:发送到实例的选择器无法识别0x7fd85b52ae60@BenThomas:这是因为您在viewDidLoad中编写了该函数,请将其移到该函数的外部,然后将其放置在类中。谢谢Midhun现在一切正常。现在只需要解决如何制作“快进”和“快退”按钮!