swift - 从另一个类为 Present ViewController Swift 调用特定函数
问题描述
我的场景,我试图从另一个类文件中调用 ViewController 类文件的特定函数。在这里,我得到了警告并且ViewController
没有呈现。
我在 ViewControllerA 下的代码
func previewview(){ // Inside ViewControllerA
DispatchQueue.main.async {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let fileViewController = storyboard.instantiateViewController(withIdentifier: "fileviewcontroller")
let navController = UINavigationController(rootViewController: fileViewController)
self.present(navController, animated: true, completion: nil)
} }
下面的代码在另一个类文件中
import UIKit
class FileController {
//MARK:- Call a file preview
ViewControllerA().self.previewview()
}
警告:尝试呈现不在窗口层次结构中的视图!
解决方案
使用 swift 的委托协议从不同的类调用一个类中的函数。这是一个了解委托协议如何工作的链接。
https://medium.com/@nimjea/delegation-pattern-in-swift-4-2-f6aca61f4bf5