2013-08-12 3 views
1

Я используюUIPageViewControllerDelegate - замена willTransitionToViewControllers для прошивки 5

- (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers:(NSArray *)pendingViewControllers 

отслеживать текущую видимую страницу в UIPageViewController. Этот метод доступен из iOS 6, но мне нужно достичь этого также в iOS 5, как я могу это сделать? Я попытался с

- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed 

но previousViewControllers графа всегда один, так что это не поможет или, возможно, я пропускаю что-то

+0

Какое месторасположение вашего позвоночника вашего 'pageViewController'? – Zen

+0

'UIPageViewControllerSpineLocationMin', поэтому' previousViewControllers' является одним из них, я вижу – laucel

+0

Yup, поэтому он будет отображать один контроллер вида на экране за раз, и вы получите ссылку на контроллер вида, выходящий из экрана в этом массиве. – Zen

ответ

1

UIPageViewController может показать два UIViewController случаев, когда он имеет свой позвоночник расположение в UIPageViewControllerSpineLocationMid, в противном случае он показывает один.

Чтобы получить ссылку на контроллер вида, который в настоящее время выходит из представления, вы можете использовать его через параметр previousViewControllers в своем делетете. Он будет содержать ссылки на контроллеры представлений, которые ранее отображались на экране.

Для примера. если у вас есть MyContentViewController класс, который в настоящее время передается в методах DATASOURCE вашей странице Вид контроллера, вы можете получить ссылку на контроллер представления, которое происходит из экрана в делегат как:

MyContentViewController *myVC = (MyContentViewController*)[previousViewControllers objectAtIndex:0]; 

и получить ссылку на контроллер текущего вида, используйте viewControllers property of UIPageViewController.

MyContentViewController *myVC = (MyContentViewController*)[[self.pageViewController viewControllers] objectAtIndex:0]; 
Смежные вопросы