AVPlayerViewController是否自动附带AVPlayer对象?

时间:2016-11-06 17:40:11

标签: ios swift avplayer viewcontroller avplayerviewcontroller

swift和视图控制器范例的新手。想知道ViewControllers是否自动附带它所描述的对象,例如avplayerviewcontroller是否自动附带准备使用的avplayer对象,还是我们还需要创建一个avplayer对象?另一个例子可能是uitableviewcontroller,它是否自动带有tableview对象,或者我是否需要在创建一个子类uitableviewcontroller的cocoa触摸类之后创建它。

这是一些示例代码,它编译了我不一定要创建一个avplayer对象的地方,但似乎该对象已经准备好通过名为'player'的属性使用了:

import UIKit
import AVKit
import AVFoundation

class MeetTheAuthorViewController: UIViewController {



    override func viewDidLoad() {
        super.viewDidLoad()
        //playBackgroundMusic("bensound-jazzyfrenchy-castlesbackground.mp3")
        // Do any additional setup after loading the view.


    }

    func btn_clicked(_ sender: UIBarButtonItem) {
        // Do something
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "videoSegue"
        {
            //set up the player
            let videoURL = Bundle.main.url(forResource: "The Atlanta Goat_ Part One-HD", withExtension: "mp4")
            let videoViewController = segue.destination as! AVPlayerViewController
            videoViewController.player = AVPlayer(url: videoURL!)
            videoViewController.player?.play()


        }
    }


}

1 个答案:

答案 0 :(得分:1)

是。 XYFeatureViewControllers是便捷的UIViewController子类。例如,UITableViewController继承自UIViewController,假设其view的类型为UITableView且已符合UITableViewDelegateUITableViewDataSource协议。

它们通常为委托方法提供默认实现,因此“正常工作”。

如果是UITableView,我建议您自己使用自定义UIViewController添加UITableView以获得充分的灵活性。

例如,UITableViewControllerUITableView为根视图,因此如果您希望稍后在屏幕上缩小tableView(示例),则不能。

在自定义viewController中,tableView将是rootView的子视图,因此调整它或在其旁边添加第二个不会有问题。