Swift 3如何点击标签栏滚动到表格视图的顶部

时间:2016-12-30 02:59:15

标签: uitableview swift3

这里是来自各种来源的代码,用于检测第二次是否点按标签栏。

func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
        var previousController: UIViewController? = nil
        if previousController == viewController {
            // the same tab was tapped a second time
            print("scroll to top")
            if viewController.responds(to: #selector(self.scrollToTop)) {
                viewController.perform(#selector(self.scrollToTop))
            }
        }
        previousController = viewController
    }

    func scrollToTop() {
        self.tableView.contentOffset = CGPoint(x: CGFloat(0), y: CGFloat(0 - self.tableView.contentInset.top))
    }

当我再次点击标签栏时,打印("滚动到顶部")不会被调用。我的代码可能会出现什么问题?

2 个答案:

答案 0 :(得分:0)

这可能是因为你得到了nil,所以如果条件

则不会进入
 var previousController: UIViewController? = nil

答案 1 :(得分:0)

您应该声明' previousController'作为您正在检测水龙头的那个班级的一个实例。

var previousController: UIViewController? = nil


每次点击标签栏时,您的上述代码行将始终初始化为nil,并且条件永远不会为真。