gpt4 book ai didi

ios - 无法构造“UITabBarDelegate”,因为它没有可访问的初始值设定项

转载 作者:行者123 更新时间:2023-11-28 05:30:22 25 4
gpt4 key购买 nike

我从 Android 开发背景转到 iOS 世界。

我正在努力避免那些将 Storyboard项目直接连接到我的 Controller (如@IBOutlet)的奇怪模式(至少对于 Android 开发者而言)。

我想知道是否可以创建一个匿名函数来委托(delegate) UITabBar 的一些事件:

    let tabBarDelegate = UITabBarDelegate {
func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem!) {
label.text = item.title
}
}

tabBar.delegate = tabBarDelegate

我面临的错误是:'UITabBarDelegate' cannot be constructed because it has no accessible initializers

我对这个世界真的很陌生。我怎样才能做到这一点?

最佳答案

您不能实例化 UITabBarDelegate,因为它是一个协议(protocol)(类似于 Java 中的接口(interface)),而不是一个类。

您必须让您的类之一声明它实现了 UITabBarDelegate,然后将该类的一个实例设置为选项卡栏的委托(delegate)。

这是一个简短的例子:

class MyViewController: UIViewController, UITabBarDelegate {
//all of UITabBarDelegate's methods are optional, so you don't have to implement them
func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem!) {
}
}

var viewController = MyViewController()
var tabBar = UITabBar()
tabBar.delegate = viewController

另外,我不相信你可以在 Swift 中创建匿名类。

关于ios - 无法构造“UITabBarDelegate”,因为它没有可访问的初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28976791/

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