这可能是关于 PageViewControllers 或我的 View 的一般管理的菜鸟问题。
我有一个 PageViewController 可以让我滑动浏览...嗯,你知道它的作用。在这些动态页面中的每一个上,我都有一个提供当前游戏状态消息的标签和一个嵌入式 UITableView,其中包含玩家列表和他们的分数(见附件 #1)。
当我点击玩家查看他们的个人资料,然后返回到我的 pageviewcontroller 时,我看到的数据是我最初离开 View 时的数据——这很好。但是......当我然后向前或向后滑动到后续页面时,该数据不会自行清除并分层在新滑动的 View 之上(见附件#2)。此外,tableview 应该不会显示此屏幕的任何点。
第三个屏幕截图显示了数据应该的外观。
想法/评论,对任何人来说都很熟悉?
提前致谢 :-)
编辑
应要求添加了更多详细信息
数字 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 并返回它时,是否只是没有从内存中正确清除?
我认为 ScoringViewController
中的 loadPages:
方法被调用了两次,因为它是从 viewWillAppear
调用的。 viewWillAppear
将在首次显示 VC 时调用,并且在关闭配置文件 View Controller 时也会调用。因此,您最终会得到两个 pageViewControllers
,其中一个通过另一个显示。如果您将该代码移至 viewDidLoad
,它应该可以正常工作。
关于ios - UIPageViewController 访问 UITableView 内容后未加载页面内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28440037/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |