gpt4 book ai didi

ios - 重新呈现 ViewController 不会重新初始化它

转载 作者:行者123 更新时间:2023-11-29 01:31:38 25 4
gpt4 key购买 nike

我有一个 viewController (videocallVC),我想在每次进入 View /加载时对其进行初始化。目前,videocallVC 仅在第一次初始化。如果我离开 videocallVC,转到另一个 viewController 并返回 videocallVC,它会在内存中保存最后一个 session ,并且不会“刷新”。

如何确保每次呈现 videocallVC 时它都会重新初始化?

import OpenTok

class videocallVC: UIViewController, OTSessionDelegate, OTSubscriberKitDelegate, OTPublisherDelegate {

@IBOutlet var subscribeView: UIView!
@IBOutlet var publishView: UIView!

let apiKey = "xxxxxxx"

var session : OTSession?
var publisher : OTPublisher?
var subscriber : OTSubscriber?
var connection : OTConnection?


override func viewDidLoad() {
super.viewDidLoad()

session = OTSession(
apiKey: apiKey,
sessionId: variableInstance.sessionID,
delegate: self)
}

override func viewWillAppear(animated: Bool) {
doConnect()
}

// MARK: - OpenTok Methods

/**
* Asynchronously begins the session connect process. Some time later, we will
* expect a delegate method to call us back with the results of this action.
*/
func doConnect() {
if let session = self.session {
var maybeError : OTError?
session.connectWithToken(variableInstance.tokboxToken, error: &maybeError)
if let error = maybeError {
showAlert(error.localizedDescription)
}
}
}

/**
* Sets up an instance of OTPublisher to use with this session. OTPubilsher
* binds to the device camera and microphone, and will provide A/V streams
* to the OpenTok session.
*/
func doPublish() {
publisher = OTPublisher(delegate: self)

var maybeError : OTError?
session?.publish(publisher, error: &maybeError)

if let error = maybeError {
showAlert(error.localizedDescription)
}

view.addSubview(publisher!.view)
publisher!.view.frame = publishView.frame

}

videocallVC 有更多代码,但我想这足以理解问题。

任何帮助将不胜感激!谢谢。

最佳答案

viewDidLoad 方法只被调用一次。每次 View 出现时都会调用方法 viewWillAppear。因此,如果每次 View 出现时您都需要做一些事情,请将其移至该方法(如果 UI 行为有意义,您也可以使用 viewDidAppear)。这可能适用于 session = OTSession( ... ) 片段。

也有可能,在您的代码中,事物被初始化,然后存储在一个变量中,然后,如果变量不是 nil,则不会进行新的初始化。您可以通过在 viewWillAppear 中将这些变量设置为 nil 来解决这个问题。

然而,在不知道所有细节的情况下,这可能是一个可能的解决方案,但仍然是盲目的:-)

关于ios - 重新呈现 ViewController 不会重新初始化它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33399475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com