【问题标题】:Double tap on UITabBarItem doesn't scroll UITableView to top双击 UITabBarItem 不会将 UITableView 滚动到顶部
【发布时间】:2015-10-14 06:19:17
【问题描述】:

我有 UITabBarController,其中每个项目都有 NavigationController,每个 NavigationController 都有一个 TableViewController 作为根视图控制器。

问题是点击每个标签栏项目不会使表格视图滚动到顶部。

可能是什么问题,我该如何解决?

【问题讨论】:

  • 你写了吗[yourtableview setScrollsToTop:YES];关于标签栏的点击方法?
  • @NiravPatel 是的,我做到了!
  • 在这种情况下,您可以将tableview内容偏移设置为零。

标签: ios objective-c uitableview uitabbarcontroller uitabbar


【解决方案1】:

答案是这样的:

-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
    MasterTableViewController * theViewController;
    if (tabBarController.selectedViewController == viewController)
    {
        if ([viewController isKindOfClass:[UINavigationController class]])
        {
            UINavigationController * nav = (UINavigationController *)viewController;
            theViewController = (MasterTableViewController *)nav.topViewController;
        }
        else
        {
            theViewController = self;
        }
        if ([theViewController respondsToSelector:@selector(navigationBarDoubleTap:)])
        {
            [theViewController navigationBarDoubleTap:nil];
        }
    }
    return YES;
}

【讨论】:

    【解决方案2】:

    检查您的标签项是否为double tapped or not。如果是,则 scrollsToTop 如下所示:-

    添加以下代码:-

    -(void)viewWillAppear:(BOOL)animated{
        [tableView scrollsToTop];
    }
    

    【讨论】:

    • 我不希望它每次出现时都滚动到顶部!仅当用户双击 TabBar 项时。
    • 您希望它何时出现在顶部?
    • 关注这个:- stackoverflow.com/a/1850951/988169 检查您的标签项目是否被双击。如果是,则 scrollsToTop
    • 我做到了。请做必要的事情。
    猜你喜欢
    • 2016-09-04
    • 1970-01-01
    • 2010-10-18
    • 2015-10-04
    • 2018-11-02
    • 1970-01-01
    • 2014-10-20
    • 2012-02-15
    • 1970-01-01
    相关资源
    最近更新 更多