• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - UIPageViewController 访问 UITableView 内容后未加载页面内容

[复制链接]
菜鸟教程小白 发表于 2022-12-13 05:17:34 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

这可能是关于 PageViewControllers 或我的 View 的一般管理的菜鸟问题。

我有一个 PageViewController 可以让我滑动浏览...嗯,你知道它的作用。在这些动态页面中的每一个上,我都有一个提供当前游戏状态消息的标签和一个嵌入式 UITableView,其中包含玩家列表和他们的分数(见附件 #1)。

当我点击玩家查看他们的个人资料,然后返回到我的 pageviewcontroller 时,我看到的数据是我最初离开 View 时的数据——这很好。但是......当我然后向前或向后滑动到后续页面时,该数据不会自行清除并分层在新滑动的 View 之上(见附件#2)。此外,tableview 应该不会显示此屏幕的任何点。

第三个屏幕截图显示了数据应该的外观。

想法/评论,对任何人来说都很熟悉?

提前致谢 :-)

Initial page prior looking at their profile combined views with data not clearing How the second page should look

编辑

应要求添加了更多详细信息

数字 2、“...”和“玩家 1 领先”部分都是在以下示例所示的 PageContentViewController 上找到的 UILabel。我的 ScoringViewController 实际上只负责设置页面 View ,并加载后续页面。

ScoringViewController.m

-(void)loadPagesint)startingPage {
    // Create page view controller
    self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier"ageViewController"];
    self.pageViewController.dataSource = self;

    PageContentViewController *startingViewController = [self viewControllerAtIndex:startingPage];
    NSArray *viewControllers = @[startingViewController];

    // Advance to next page ("hole");
    [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

    // Change the size of page view controller
    self.pageViewController.view.frame = CGRectMake(
                                                0,
                                                0,
                                                self.view.frame.size.width,
                                                self.view.frame.size.height);

    [self addChildViewController:_pageViewController];
    [self.view insertSubview:_pageViewController.view atIndex:0];
    [self.pageViewController didMoveToParentViewController:self];
}

-(PageContentViewController *)viewControllerAtIndexNSUInteger)index { 
    // Create a new view controller and pass suitable data.
    PageContentViewController *pageContentViewController = [self.storyboard
                                                        instantiateViewControllerWithIdentifier"ageContentViewController"];

    pageContentViewController = [self.storyboard instantiateViewControllerWithIdentifier"ageContentViewController"];
    pageContentViewController.pageIndex = index;

    return pageContentViewController;
}

PageContentViewController.m

-(void)viewWillAppearBOOL)animated {
    [super viewWillAppear:animated];

    // Add 1 to the page index since it's zero based.
    int tmpPageIndex = _pageIndex + 1;

    _lblCurrentHole.text = [NSString stringWithFormat"%d",tmpPageIndex];
}

在我的 TableView 的 configureCell 方法中,它只是点击了一个 leaderCheck 函数,然后显示了正确的消息。除此之外,真的没有别的了。如果我去个人资料页面然后回来,效果很好。

代码源于我不久前在 AppCoda 上找到的一个示例。 (http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/)。

编辑 包括一个带有颜色的内容 View 的特写,以显示顶部的主视图和底部的表格 View 的分离。

当我离开这个 View 并返回它时,是否只是没有从内存中正确清除?

enter image description here enter image description here



Best Answer-推荐答案


我认为 ScoringViewController 中的 loadPages: 方法被调用了两次,因为它是从 viewWillAppear 调用的。 viewWillAppear 将在首次显示 VC 时调用,并且在关闭配置文件 View Controller 时也会调用。因此,您最终会得到两个 pageViewControllers,其中一个通过另一个显示。如果您将该代码移至 viewDidLoad,它应该可以正常工作。

关于ios - UIPageViewController 访问 UITableView 内容后未加载页面内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28440037/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap