我想在他们的列表中模拟 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 上
最佳答案
好的,所以我认为最好的方法是检查 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/