首页 > 解决方案 > 从另一个类为 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

解决方案


使用 swift 的委托协议从不同的类调用一个类中的函数。这是一个了解委托协议如何工作的链接。

https://medium.com/@nimjea/delegation-pattern-in-swift-4-2-f6aca61f4bf5


推荐阅读