当用户点击行时,表格视图在导航栏下滑动

 紫百合1990_950 发布于 2023-02-06 20:37

我有一个UINavigationController(NC)包含UITableViewController(TVC0).当用户点击一行时,它会加载一个UIPageViewController(PVC),它在其他UITableViewControllers(TVC1)之间来回翻页.

TVC0显示在NC内部(意味着它不会隐藏在顶部的导航栏或底部的标签栏后面).当它推动PVC时,第一个TVC1出现在导航栏和标签栏的边界内.但是当我滑动时,里面的TVC1隐藏在导航栏和标签栏后面.我可以拉出来揭示内容,但当我释放时,它会快速回到栏后面.

如何强制一切出现在两个酒吧之间?我不能使用故事板(因为它是一个遗留应用程序)并且嵌入...选项不可用.

[编辑]

我添加了一些日志记录,发现我的嵌入式TVC1s帧的绝对原点为0,64,但是一旦点击,它就会变为0,0.如果我找不到真正的解决方案,我总是可以伪造它通过添加64,但我更想弄清楚实际上是错的.

[/编辑]

[更多编辑]

我正在测试iOS 6模拟器中的另一个区域,并发现这个分页在iOS 6中运行完美.所以我看到的问题是iOS 7特定的.

[/更多编辑]

这是我的TVC0 viewDidLoad,PVC pageViewController:viewControllerBeforeViewController:和帮手viewControllerAtIndex::

- (void) viewDidLoad
{
    [super viewDidLoad];
    NSDictionary* options = [NSDictionary dictionaryWithObject:
                             [NSNumber numberWithInteger: UIPageViewControllerSpineLocationMin]
                                                        forKey:
                             UIPageViewControllerOptionSpineLocationKey];
    self.pageController = [[UIPageViewController alloc] initWithTransitionStyle:
                           UIPageViewControllerTransitionStyleScroll
                                                          navigationOrientation:
                           UIPageViewControllerNavigationOrientationHorizontal
                                                                        options: options];

    self.pageController.dataSource = self;
    self.pageController.view.frame = self.view.frame;
    NSArray* viewControllers =
            [NSArray arrayWithObject: [self viewControllerAtIndex: self.initialIndex]];

    [self.pageController setViewControllers: viewControllers
                                  direction: UIPageViewControllerNavigationDirectionForward
                                   animated: NO
                                 completion: nil];

    [self addChildViewController: self.pageController];
    [self.view addSubview: self.pageController.view];
    [self.pageController didMoveToParentViewController: self];

    for (UIGestureRecognizer* recognizer in self.pageController.gestureRecognizers)
    {
        if ([recognizer isKindOfClass: [UITapGestureRecognizer class]])
        {
            recognizer.enabled = NO;
        }
    }
}

// SearchResultsList is TVC1
- (SearchResultsList*) viewControllerAtIndex: (NSUInteger) index
{
    if (index >= self.items.count)
    {
        return nil;
    }

    SearchResultsList* retVal = [[SearchResultsList alloc]
                                    initWithNibName: @"SearchResultsList" bundle: nil];

    MyListItem* myItem = [self.items objectAtIndex: index];
    MyMatchesRequest* matches = [[MyMatchesRequest alloc] initWithItemId: myItem.itemId];
    [matches execute: ^(MySearchResults* results)
     {
         retVal.tableData = [NSMutableArray arrayWithArray: results.items];
         retVal.view.frame = self.view.frame;
         retVal.myItem = myItem;
         retVal.index = index;
         self.title = myItem.displayText;
         [[retVal tableView] reloadData];
     }];

    return retVal;
}

- (UIViewController*) pageViewController: (UIPageViewController*) pageViewController
      viewControllerBeforeViewController: (UIViewController*) viewController
{
    SearchResultsList* vc = (SearchResultsList*)viewController;
    if (vc.index == 0)
    {
        [self.navigationController popViewControllerAnimated: YES];
        return nil;
    }

    return [self viewControllerAtIndex: vc.index - 1];
}

Nick.. 14

我有类似行为的非常痛苦的学习经历:(

把它放在你的视图控制器的init中:

self.automaticallyAdjustsScrollViewInsets = NO;

这是iOS 7 UIViewController中默认的新属性YES

UIViewController文档

1 个回答
  • 我有类似行为的非常痛苦的学习经历:(

    把它放在你的视图控制器的init中:

    self.automaticallyAdjustsScrollViewInsets = NO;
    

    这是iOS 7 UIViewController中默认的新属性YES

    UIViewController文档

    2023-02-06 20:42 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有