2015-10-14 69 views
0

我有UITabBarController其中每个项目都有NavigationController和每个NavigationController有一个TableViewController作为根视图控制器。双击UITabBarItem不会滚动UITableView顶部

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

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

+0

你写[yourtableview setScrollsToTop:YES];关于标签栏的敲击方法? – NiravPatel

+0

@NiravPatel是的,我做到了! – aakpro

+0

在这种情况下,您可以将tableview内容偏移量设置为零。 – NiravPatel

回答

0

那么答案是这样的:

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

检查您的标签项是否为double tapped or not。如果是,则scrollsToTop象下面这样: -

添加如下代码: -

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

我不希望它每次出现时都滚动到顶部!只有当用户双击TabBar项目。 – aakpro

+0

当你想在顶部? – pkc456

+0

按照此: - http://stackoverflow.com/a/1850951/988169 检查您的标签项是否双击。如果是,那么scrollsToTop – pkc456