【发布时间】:2015-07-19 10:55:57
【问题描述】:
我正在构建一个带有自定义标签栏的应用程序。其中一个按钮不会选择相应的视图控制器,而是会触发一些自定义代码(例如模态打开)。
我将 UITabBarController 子类化为:
import UIKit
class MyTabBarController: UITabBarController, UITabBarControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
delegate = self
}
func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool {
if (viewController == self.viewControllers[2]) {
return false
}
return true
}
}
但是,viewController == self.viewControllers[2] 的比较似乎不起作用。我收到以下错误:
找不到接受所提供参数的
==的重载
作为 Swift 的新手,我找不到任何材料来解释如何比较对象的特定实例,或者这是否是正确的方法。
如何更改此代码以使其正常工作?
【问题讨论】:
-
你为什么继承
UITabBarController?为此,您需要做的就是实现委托方法 -
我这样做是为了能够将一些自定义样式应用于栏。该代码在我的示例中已被编辑,因为它不相关。
标签: ios xcode swift uiviewcontroller uistoryboard