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;
}

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...