uiscrollview中的UIViewControllers调用viewdidappear

时间:2014-09-17 13:25:41

标签: ios objective-c iphone uiviewcontroller uiscrollview

我将5个viewcontrollers添加到带有页面控件的scrollview中,这样我就可以从一个viewcontroller滑动到另一个viewcontroller。

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

有没有办法避免调用viewdidappear看不到的视图控制器? 我将我的viewcontrollers添加到我的滚动视图中,如下所示:

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

}
[scrollView addSubview:controller.view];

1 个答案:

答案 0 :(得分:3)

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

  

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

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

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