首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法将'UIViewController.Type‘类型的值转换为所需的参数类型'UIViewController

无法将'UIViewController.Type‘类型的值转换为所需的参数类型'UIViewController
EN

Stack Overflow用户
提问于 2018-04-06 13:57:52
回答 2查看 10.2K关注 0票数 0

此代码显示错误:“无法将'UIViewController.Type‘类型的值转换为预期的参数类型’UIViewController‘。请告诉我如何解决此问题。”

代码语言:javascript
复制
@objc static func listBtn()
    {
        drawerVw = DrawerView(aryControllers: DrawerArray.array, isBlurEffect: true, isHeaderInTop: false, controller: UIViewController.self)
        //drawerVw = DrawerView(aryControllers: DrawerArray.array, isBlurEffect: true, isHeaderInTop: false, controller: self)
        drawerVw.delegate = UIViewController.self as? DrawerControllerDelegate
        //drawerVw.delegate = self
        drawerVw.changeUserName(name: "New Delhi")
        drawerVw.show()
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-06 16:10:33

您需要使用此代码。这段代码在我这边运行得很好。

班级

代码语言:javascript
复制
@objc static func listBtn() {
        UIViewController.showListButton(navigationController: navController)
}

扩展

代码语言:javascript
复制
import Foundation
import UIKit

extension UIViewController
{
    static func showListButton(navigationController: UINavigationController)
    {
        if let currentVC = navigationController.visibleViewController
        {
            drawerVw = DrawerView(aryControllers: DrawerArray.array, isBlurEffect: true, isHeaderInTop: false, controller: currentVC)
            drawerVw.delegate = currentVC as? DrawerControllerDelegate
            drawerVw.show()
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2019-04-11 03:42:25

如果您将变量设置为如下所示:

代码语言:javascript
复制
let vc = self.storyboard?.instantiateViewController(withIdentifier: "chatView") as? HomeViewController

它应该会删除该错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49686299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档