访问iOS6 UIPageViewController创建的UIPageControl?

我正在使用UIPageViewController,导航设置为Horizo​​ntal,Transition Style设置为Scroll(在InterfaceBuilder中),没有脊椎.这给了我一个可爱的UIPageControl集成.现在我希望能够切换它是否正在显示(因为它下面有艺术品).

我已经尝试将presentationCountForPageViewController和presentationIndexForPageViewController设置为在UIPageControl被隐藏时返回0,但是当我想要的时候没有调用那些方法.

暂停堆栈跟踪,我看到它们被[UIPageViewController _updatePageControlViaDataSourceIfNecessary]调用…我认为如果我尝试使用该方法,我的应用程序将被拒绝.

我应该通过子视图搜索它,还是自己滚动以便我可以控制它,还是有更好的方法来切换它的可见性?

谢谢!

解决方法

我会说,通过子视图进行搜索.此代码在子视图层次结构中成功找到UIPageControl:
NSArray *subviews = pageController.view.subviews;
UIPageControl *thisControl = nil;
for (int i=0; i<[subviews count]; i++) {
    if ([[subviews objectAtIndex:i] isKindOfClass:[UIPageControl class]]) {
        thisControl = (UIPageControl *)[subviews objectAtIndex:i];
    }
}

我正在使用它来自定义点的颜色,我想你可以用alpha值做同样的事情或者把它发送到背面或者什么东西.

Apple没有通过UIPageViewController类提供与UIPageControl的直接接口,但是没有非法的方法调用才能到达它…我不明白为什么这会导致应用程序拒绝.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...