Откройте UIPageViewController на определенной странице, в зависимости от даты

Я работаю над приложением блочного календаря, начиная с шаблона UIPageViewController, предоставленного Apple. Теперь у меня есть массив из 365 изображений, каждое из которых используется для заполнения страницы. При открытии приложения на первой странице отображается, естественно, первое изображение в массиве. Теперь я хочу, чтобы каждое изображение соответствовало определенной дате (скажем, 12-06-2012), и чтобы, когда приложение было открыто в эту дату, приложение открывало страницу, соответствующую этой дате. Поскольку я новичок в Objective-C и, в частности, в UIPageViewController, как лучше всего это сделать?


person user1048042    schedule 12.07.2012    source источник
comment
В настоящее время вы можете перелистывать страницы своего приложения, или первое изображение остается в замороженном состоянии, независимо от того, сколько страниц вы перевернули? Если вы можете перелистывать страницы как вперед, так и назад, и отображаются следующие/предыдущие изображения из вашего массива, отредактируйте свой вопрос, указав содержание следующих двух методов: pageViewController:viewControllerBeforeViewController: и pageViewController:viewControllerAfterViewController:.   -  person Sergey Kalinichenko    schedule 12.07.2012
comment
В високосном году 366 дней - 2012 год високосный :)   -  person James Thiele    schedule 12.07.2012


Ответы (1)


UIPageViewController не знает понятия текущего номера страницы. Насколько это касается, есть только контроллер представления, который он отображает в данный момент. Вы несете ответственность за предоставление правильно настроенного контроллера представления для контроллера представления страницы (и подготовку другого контроллера представления, настроенного для следующей или предыдущей страницы всякий раз, когда пользователь переворачивает страницу).

Что касается определения номера определенного дня в текущем году, обратите внимание на NSCalendar и NSDateComponents, особенно на метод ordinalityOfUnit:inUnit:forDate:. Также обратите внимание, что не все пользователи используют «западный» григорианский календарь, который большинство из нас, вероятно, считает само собой разумеющимся.

person Ole Begemann    schedule 12.07.2012
comment
А, спасибо, это имеет смысл. Насколько я понимаю, я могу сохранить массив из 365 изображений и оттуда предоставить контроллеру представления изображение, соответствующее сегодняшней дате (по сравнению с NSDate)? Или я должен редактировать массив? - person user1048042; 13.07.2012