【问题标题】:UIPageViewController to Force reload ChildView controllerUIPageViewController 强制重新加载 ChildView 控制器
【发布时间】: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;
}

【问题讨论】:

    标签: ios uipageviewcontroller uipagecontrol


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2014-06-07
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 1970-01-01
      相关资源
      最近更新 更多