我在Tab Bar下使用TableView 我的要求是当用户双击所选视图控制器的标签栏项目时向上滚动表格视图
这是我的代码
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.如果用户在标签标签栏项目上随时点按两次,则列表应滚动到顶部
答案 0 :(得分:1)
在你的代码中,我会添加检查是否已选择此视图控制器
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
}