gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:48 25 4
gpt4 key购买 nike

这可能是关于 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)loadPages:(int)startingPage {
// Create page view controller
self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewController"];
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 *)viewControllerAtIndex:(NSUInteger)index {
// Create a new view controller and pass suitable data.
PageContentViewController *pageContentViewController = [self.storyboard
instantiateViewControllerWithIdentifier:@"PageContentViewController"];

pageContentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageContentViewController"];
pageContentViewController.pageIndex = index;

return pageContentViewController;
}

PageContentViewController.m

-(void)viewWillAppear:(BOOL)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

最佳答案

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com