2016-11-06 2 views
0

Новые для быстрой и парадигмы контроллера зрения. Хотелось бы узнать, автоматически ли ViewControllers автоматически приходят с объектами, которые он описывает, например, автоматически ли работает avplayerviewcontroller с объектом avplayer, готовым к использованию, или нам еще нужно создать объект avplayer? Другим примером может быть uitableviewcontroller, автоматически ли он поставляется с объектом tableview или нам нужно создать его после создания класса Touch для какао, который подклассифицирует uitableviewcontroller.Включен ли AVPlayerViewController с объектом AVPlayer?

Вот пример кода, который компилирует, где я не обязательно создавать объект AVPlayer, но кажется, что объект уже был готов к использованию через свойство под названием «игрок»:

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

Да. XYFeatureViewControllers являются удобными UIViewController подклассами. Например, UITableViewController наследует от UIViewController, предполагает, что его view имеет тип UITableView и уже соответствует протоколам UITableViewDelegate и UITableViewDataSource.

Часто они предлагают стандартные реализации для методов делегатов и, таким образом, «просто работают» сразу.

В случае возникновения вопросов UITableView, я бы рекомендовал использовать таможню UIViewController и добавить UITableView (s) самостоятельно, чтобы иметь полную гибкость.

Например, UITableViewController имеет вид UITableView как корневой вид, поэтому, если вы хотите, чтобы tableView меньше на экране позже (пример), вы не можете.

В вашем пользовательском viewController tableView будет subView корневого элемента, поэтому его изменение размера или добавление второго рядом с ним не будет проблемой.

+0

Итак, вы говорите, что они автоматически приходят с заранее заданным объектом, таким как tableview, уже имеющим объект tableview, готовым для использования через свойство без необходимости его создания. В этом случае, если мы хотим иметь два объекта tableview внутри uitableviewcontroller, нам нужно создать экземпляр нового объекта tableview для второго? @shallowThought –

+1

«Итак, вы говорите, что они автоматически приходят с заранее заданным объектом, таким как tableview, уже имеющим объект tableview, готовым для использования через свойство без необходимости его создания»: Да – shallowThought

Смежные вопросы