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()
}
}
}
答案 0 :(得分:1)
是。 XYFeatureViewControllers是便捷的UIViewController
子类。例如,UITableViewController
继承自UIViewController
,假设其view
的类型为UITableView
且已符合UITableViewDelegate
和UITableViewDataSource
协议。
它们通常为委托方法提供默认实现,因此“正常工作”。
如果是UITableView
,我建议您自己使用自定义UIViewController
添加UITableView
以获得充分的灵活性。
例如,UITableViewController
以UITableView
为根视图,因此如果您希望稍后在屏幕上缩小tableView(示例),则不能。
在自定义viewController中,tableView将是rootView的子视图,因此调整它或在其旁边添加第二个不会有问题。