检测上UITabbarControler项目枪王滚动表查看了

问题描述:

我使用的TableView在标签栏 我的要求是,以滚动查看表了当对选择视图控制器检测上UITabbarControler项目枪王滚动表查看了

标签栏项目用户双击这是我的代码

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool 
{ 

    if tabBarController.viewControllers!.index(of: viewController) == 0 { 
     if let navigationController = viewController as? UINavigationController{ 
      if let streamController = navigationController.viewControllers.last as? StreamViewController 
      { 
       streamController.tableViewStream.setContentOffset(CGPoint(x: 0, y: 0), animated: false) 

      } 
     } 
     return true 
    } 

} 

但是,这导致用户在单击项目时滚动表格,由于这我注意到能够保留滚动位置。

所以我想是

1.如果用户滚动表和去另一个选项卡上,并通过单一的水龙头再来滚动位置应保持相同

2.如果用户敲击双任何时间标签标签栏项目的列表,应滚动到顶部

在你的代码,我想补充检查,如果这个视图控制器已经被选中

if tabBarController.viewControllers!.index(of: viewController) == 0 { 

    if self.selectedIndex != 0 { return true } 

    if let navigationController = viewController as? UINavigationController{ 
     if let streamController = navigationController.viewControllers.last as? StreamViewController 
     { 
      streamController.tableViewStream.setContentOffset(CGPoint(x: 0, y: 0), animated: false) 

     } 
    } 
    return true 
} 
+1

得益于其解决问题不精确地双击,但如果我点击标签栏项目,如果我已经在0索引 –