【问题标题】:UIViewControllers in uiscrollview calling viewdidappearuiscrollview 中的 UIViewControllers 调用 viewdidappear
【发布时间】:2014-11-11 13:38:54
【问题描述】:

我将 5 个视图控制器添加到带有页面控件的滚动视图中,这样我就可以从一个视图控制器滑动到另一个视图控制器。

在初始化时,我正在加载 3 个视图控制器(左、中、右) 我的问题是我的三个 viewcontroller 正在触发 viewDidAppear 但只有中心 viewController 是可见的......

有没有办法避免不可见的视图控制器调用 viewdidappear? 我正在将我的视图控制器添加到我的滚动视图中:

if (controller != nil){
    [self addChildViewController:controller];
    [controller didMoveToParentViewController:self];

}
[scrollView addSubview:controller.view];

【问题讨论】:

    标签: ios objective-c iphone uiviewcontroller uiscrollview


    【解决方案1】:

    不,viewDidAppear 方法与视图的可见性无关,如果你得到文档就会看到

    通知视图控制器其视图已添加到视图层次结构中。

    所以当视图添加到层​​次结构时,这个方法会被调用。因此视图被加载,并添加到层次结构中,即使在 mainView 的不可见空间中,它也会调用 viewDidAppear。

    要实现你想要的,你应该实现scrollView的delegate,检查偏移量,看看你在哪个页面,然后你可以在你的viewController上调用一个方法来完成你想要的工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多