我将5个viewcontrollers添加到带有页面控件的scrollview中,这样我就可以从一个viewcontroller滑动到另一个viewcontroller。
在初始化时我加载3个视图控制器(左,中,右) 我的问题是我的三个viewcontrollers正在触发viewDidAppear,但只有中心viewController可见......
有没有办法避免调用viewdidappear看不到的视图控制器? 我将我的viewcontrollers添加到我的滚动视图中,如下所示:
if (controller != nil){
[self addChildViewController:controller];
[controller didMoveToParentViewController:self];
}
[scrollView addSubview:controller.view];
答案 0 :(得分:3)
不,viewDidAppear方法与视图的可见性无关,如果你得到你将看到的文档
通知视图控制器其视图已添加到视图层次结构中。
因此,在将视图添加到层次结构时,将调用此方法。因此视图被加载并添加到层次结构中,即使在mainView的不可见空间中,它也会调用viewDidAppear。
要实现你想要的,你应该实现scrollView的委托,检查偏移量,看看你在哪个页面,然后你可以调用viewController上的方法来完成你想要的工作。