无法将类型“(SwipeableTabBarController).Type”的值转换为预期的参数类型“UIView”

Posted

技术标签:

【中文标题】无法将类型“(SwipeableTabBarController).Type”的值转换为预期的参数类型“UIView”【英文标题】:Cannot convert value of type '(SwipeableTabBarController).Type' to expected argument type 'UIView' 【发布时间】:2019-04-01 20:48:03 【问题描述】:

我想将 Tabbar 添加到我的应用程序中。但是当我尝试添加它时,它会在标题中给出错误。如何激活 Tabbar 功能?

public extension UIViewController  
    public func setTabBarSwipe(enabled: Bool) 
        if let swipeTabBarController = tabBarController as? SwipeableTabBarController 
            swipeTabBarController.isSwipeEnabled = enabled
        
    


class MainTableViewController: UITableViewController 
override func viewDidLoad() 
        super.viewDidLoad()

        view.addSubview(SwipeableTabBarController)

【问题讨论】:

【参考方案1】:

您不能在此处添加用户定义类型 SwipeableTabBarController 选项卡作为子视图

 view.addSubview(SwipeableTabBarController)

你需要添加一个类似的实例

 let vc = SwipeableTabBarController()
 self.addChild(vc)
 vc.view.frame = self.view.bounds
 view.addSubview(vc.view)
 vc.willMove(toParent:self)

【讨论】:

【参考方案2】:

如果您的 tabBarController 是应用程序的根视图控制器,请使用它。

        if let window = UIApplication.shared.keyWindow, 
           let tabBar = window.rootViewController as? SwipeableTabBarController                  
             tabBar.isSwipeEnabled = enabled
        

【讨论】:

以上是关于无法将类型“(SwipeableTabBarController).Type”的值转换为预期的参数类型“UIView”的主要内容,如果未能解决你的问题,请参考以下文章

C# 无法将类型为“System.Byte[]”的对象强制转换为类型“System.Data.DataTable

无法将类型“[PHAsset]”的值分配给类型“UIImageView!”

无法将 [Struct] 类型的值快速转换为 [string] 类型

无法将类型“()”的值转换为预期的参数类型“字符串”

无法将“字符串”类型的值转换为预期的参数类型 [任何]

无法将值类型“()”分配给字符串类型?