2016-11-06 21 views
0

新的迅速和視圖控制器範例。想知道ViewControllers是否會自動附帶它所描述的對象,avplayerviewcontroller是否會自動附帶一個準備好使用的avplayer對象,或者我們是否還需要創建一個avplayer對象?另一個例子可以是uitableviewcontroller,它是自動帶一個tableview對象還是我們需要創建一個子類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,並且已經符合UITableViewDelegateUITableViewDataSource協議。

通常它們爲委託方法提供默認實現,因此「馬上就可以工作」。

UITableView的情況下,我建議您自己使用自定義UIViewControllerUITableView(s)以獲得充分的靈活性。

例如,UITableViewControllerUITableView作爲根視圖,因此如果您希望稍後在屏幕上使(例如)較小的tableView,則不能。

在您的自定義viewController中,tableView將是rootView的子視圖,因此調整它的大小或在它旁邊添加第二個不會是一個問題。

+0

所以你說他們會自動附帶預定義的對象,比如已經有一個tableview對象的tableview對象可以通過屬性使用,而不必創建一個屬性。在這種情況下,如果我們想在uitableviewcontroller中有兩個tableview對象,那麼我們必須爲第二個對象實例化一個新的tableview對象? @shallowThought –

+1

「所以你說他們會自動附帶預定義的對象,比如一個tableview對象,它已經有了一個可以通過屬性使用的tableview對象,而無需創建一個」:Yes – shallowThought

相關問題