UIPageViewController 强制重新加载 ChildView 控制器
Posted
技术标签:
【中文标题】UIPageViewController 强制重新加载 ChildView 控制器【英文标题】:UIPageViewController to Force reload ChildView controller 【发布时间】:2014-02-18 14:23:45 【问题描述】:我在 Root UIPageViewController 中有一个滑块,它需要将滑块值传递给子视图控制器。除了已经加载的子视图控制器之外,它适用于其他子视图控制器!
我在 RootView 中有 Slider 用于我调用的 Slider Value Change -
- (void)sliderValueChanged:(UISlider *)slider
fontValue = slider.value;
DetailsVC *dataViewController = [self viewControllerAtIndex:self.newsIndex storyboard:self.storyboard];
[dataViewController refreshViewForFontSize:slider.value];
我有 UIPageViewController 的常用方法,效果很好。只是问题是它只有在子 ViewControllers 中调用 ViewDid Load 方法后才有效
- (DetailsVC *)viewControllerAtIndex:(NSUInteger)index storyboard:(UIStoryboard *)storyboard
// Return the data view controller for the given index.
if (([self.pageContent count] == 0) || (index >= [self.pageContent count]))
return nil;
DetailsVC *dataViewController = [[DetailsVC alloc] init];
dataViewController.fontValue = fontValue;
return dataViewController;
【问题讨论】:
【参考方案1】:终于找到解决办法了
DetailsVC *dataViewController = [self viewControllerAtIndex:currentIndex-1 storyboard:self.storyboard];
dataViewController.textColor = textColor;
NSArray *viewControllers = @[dataViewController];
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
重新加载子视图控制器的正确方法是通过
setViewControllers:方向:动画:完成:
如果有人需要示例项目,我已将其上传至 https://github.com/bishalg/BGPageViewController
【讨论】:
以上是关于UIPageViewController 强制重新加载 ChildView 控制器的主要内容,如果未能解决你的问题,请参考以下文章
在几秒钟内重新加载 UiPageViewController
在 UIPageViewController 中重新加载视图
Swift - 在 viewDidAppear 中使用新信息重新加载 UIPageViewController
如何重新加载 UIPageViewController 以在 Swift 中重新加载其视图