It looks to me like you're on the right track. Using the appearance proxy should work. I do it like this and it works (do it in your AppDelegate, and do it before the interface appears):
UIPageControl* proxy =
[UIPageControl appearanceWhenContainedIn:[UIPageViewController class], nil];
[proxy setPageIndicatorTintColor:[UIColor lightGrayColor];
[proxy setCurrentPageIndicatorTintColor:[UIColor blackColor]];
[proxy setBackgroundColor:[UIColor whiteColor]];
You also must implement the two delegate methods:
- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pvc {
// ...
}
-(NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pvc {
// ...
}
Otherwise, the UIPageControl will not appear!
Apart from that, I cannot see much difference between what you're doing and what I'm doing, but I know that my code does work. You can download and try it here: