Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios removeFromSuperview不工作-Swift_Ios_Xcode_Swift - Fatal编程技术网

Ios removeFromSuperview不工作-Swift

Ios removeFromSuperview不工作-Swift,ios,xcode,swift,Ios,Xcode,Swift,请参阅下面的代码。当按下“完成”按钮或视频停止播放时,我试图从视图中删除视频子视图。我在代码中没有显示错误,但是removeFromSubview方法似乎不起作用。我不确定我的语法是否错误,或者是否与iAction方法中的movieplayer代码和viewDidLoad下面的moviePlayBackDidFinish有关。任何建议都将不胜感激。谢谢 import Foundation import UIKit import MediaPlayer class VideoViewContro

请参阅下面的代码。当按下“完成”按钮或视频停止播放时,我试图从视图中删除视频子视图。我在代码中没有显示错误,但是removeFromSubview方法似乎不起作用。我不确定我的语法是否错误,或者是否与iAction方法中的movieplayer代码和viewDidLoad下面的moviePlayBackDidFinish有关。任何建议都将不胜感激。谢谢

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现在一切正常。现在只需要解决如何制作“快进”和“快退”按钮!