ios - 双击 UITabBarItem 滚动到顶部 UITableView

标签 ios swift uitableview uitabbarcontroller uitabbaritem

我想在他们的列表中模拟 twitter 或 instagram 的行为:

在 UITabBarItem 中双击时,列表会滚动到顶部。有人知道我该怎么做? 我的 UITabBarController 中有 4 个项目,所有项目都是列表,所以我想为所有项目做这件事。

问题是当我在 mi 列表的推送 View 中点击栏项目时,此函数在获取导航的 Root View Controller 之前调用并检测双击。

我希望能清楚我的问题。

var previousController: UIViewController?

func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
    if previousController == viewController{
        if let navVC = viewController as? UINavigationController, vc = navVC.viewControllers.first as? HomeViewController {
            vc.tableBusinessList.setContentOffset(CGPointZero, animated: true)
            print("same")
        }
    }else{
        print("No same")
    }
    previousController = viewController
}

行为不正确。 当我弹出带有选项卡栏项的 View 时, Root View 位于单元格 0 上

enter image description here

最佳答案

好的,所以我认为最好的方法是检查 viewController 和您的 tableView 是否可见,如果不可见,则不要调用设置内容偏移量。

所以:

var previousController: UIViewController?

func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
    if previousController == viewController {
        if let navVC = viewController as? UINavigationController, vc = navVC.viewControllers.first as? HomeViewController {

            if vc.isViewLoaded() && (vc.view.window != nil) {
                // viewController is visible
                vc.tableBusinessList.setContentOffset(CGPointZero, animated: true)
            }

            print("same")
        }
    }else{
        print("No same")
    }

    previousController = viewController

}

关于ios - 双击 UITabBarItem 滚动到顶部 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37124110/

相关文章:

ios - 我如何通过对 xcode 7 使用 try 和 catch 来转换此方法

ios - 与 UITableView 的 super View 上的 UIPanGestureRecognizer 冲突

javascript - PhoneGap 只使用 UIWebVIew 还是做更多的事情?硝基?

ios - 为什么无论应用程序支持的界面方向如何,UIWindow 的边界总是纵向的?

ios - 如果我在新证书(企业分发方法)上更新我的配置文件,我的应用程序会停止吗?

c# - 如何将 C# 的 BitConverter.GetBytes(date.ToBinary()) 转换为 Swift

ios - 主队列上的调度屏障

ios - 如何提高导航栏主标题的位置?

ios - 当 UITableViewCell 使用 Swift 展开时如何更改 UIButton 图像?

ios - 有效地自定义一个简单的 UITableViewCell