簡體   English   中英

初始化 ViewController 時傳遞一個字符串

[英]Passing a string when initialising ViewController

我正在初始化一個 ViewController,它應該是一個視頻播放器視圖 controller,問題是我在創建它時需要傳遞一個 videoUrl 字符串。

有了這個字符串,我實際上會創建一個 AVPlayer 並播放假定的視頻。

我實際上不知道如何在初始化 viewController 時傳遞字符串。

播放器代碼在這里:

 let player = AVPlayer(URL: url)
let playerController = AVPlayerViewController()

playerController.player = player
self.addChildViewController(playerController)
self.view.addSubview(playerController.view)
playerController.view.frame = self.view.frame

player.play()  

這是您如何做到的

class YourViewController: UIViewController {
 init(_ string: String) {
        super.init(nibName: nil, bundle: nil)
        // use this string 
    }

    required init?(coder: NSCoder) {
    super.init(coder: coder)
   }
}

這取決於您如何創建ViewController實例。

1.如果您使用的是storyboard ,那么您可以在ViewController中創建一個存儲屬性並在創建實例時對其進行初始化。

class VideoViewController: UIViewController {
    var videoUrl: String?
}

現在,在創建VideoViewController實例時,

if let vc = self.storyboard?.instantiateViewController(identifier: "VideoViewController") as? VideoViewController {
    vc.videoUrl = "YOUR_VIDEO_URL"
}

2.如果您沒有使用storyboard並以編程方式創建ViewController ,請在init(videoUrl:)中傳遞videoUrl

class VideoViewController: UIViewController {
    init(videoUrl: String?) {
        super.init(nibName: nil, bundle: nil)
        //save or use videoUrl here...
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

現在,在創建VideoViewController實例時,

let vc = VideoViewController(videoUrl: "YOUR_VIDEO_URL")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM