ios - uiscrollview 中的 UIViewControllers 调用 viewdidappear

标签 ios objective-c iphone uiviewcontroller uiscrollview

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

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

有没有办法避免调用 viewdidappear 不可见的 View Controller ?
我正在将我的 View Controller 添加到我的 ScrollView 中,如下所示:

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

}
[scrollView addSubview:controller.view];

最佳答案

不,viewDidAppear 方法与 View 的可见性无关,如果您获得文档,您将看到

Notifies the view controller that its view was added to a view hierarchy.



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

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

关于ios - uiscrollview 中的 UIViewControllers 调用 viewdidappear,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25891907/

相关文章:

ios - 为整个 NSString 生成 NSRange 的快捷方式?

iphone - UIImage 不从相机中显示,仅从照片库中显示

ios - bolt 框架中的 FBSDKGraphRequest 从不调用 block

iphone - 重写 UITextView

iphone - C 结构的初始化如何在 iOS Objective-C 中工作?

ios - 为什么navigationBar和view之间显示黑屏

ios - 如何在 dealloc 方法中引用 __weak self

iphone - 有关如何实现平滑绘画笔触(如 Penultimate 应用程序中所示)的示例代码

ios - 为数组编码上一个按钮

iphone - 如何连接 nsstring url