ios – 点击标签栏滚动到UITableViewController的顶部

点击当前导航控制器的标签栏图标已经将用户返回到根视图,但是如果它们向下滚动,如果再次点击它,我希望它滚动到顶部(与点击状态栏相同的效果).我该怎么做?

一个很好的例子是Instagram的Feed,向下滚动然后点击标签栏中的主页图标来滚动回到顶部.

滚动回到顶部很容易,但是将其连接到标签栏控制器是我坚持的.

解决方法

实现UITabBarControllerDelegate方法tabBarController:didSelectViewController:当用户选择选项卡时通知.即使已经选择了该选项卡,当再次点击相同的Tab按钮时也会调用方法.

实施这个代表的好地方可能是你的AppDelegate.或逻辑上“拥有”标签栏控制器的对象.

我将声明并实现一个可以在视图控制器上调用方法来滚动集合视图.

- (void)tabBarController:(UITabBarController *)tabBarController 
 didSelectViewController:(UIViewController *)viewController
{
    static UIViewController *prevIoUsController = nil;
    if (prevIoUsController == viewController) {
        // the same tab was tapped a second time
        if ([viewController respondsToSelector:@selector(scrollToTop)]) {
            [viewController scrollToTop];
        }
    }
    prevIoUsController = viewController;
}

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...