2013-02-21 3 views
0

Я столкнулся с проблемой за 2 недели.
У меня есть UILabel, который показывает soundPlayer Текущая продолжительность на мой взгляд. Я использую UIPageViewController, поэтому пользователь перемещается по страницам (мой взгляд), как настоящая книга. но когда появляется часть другого контроллера представления, метка не показывает текущий прогресс (потому что это новый экземпляр контроллера вида).
Как я могу сделать этот UILabel статическим? Я имею в виду, что все экземпляры ViewController имеют доступ к одному UIlabel, поэтому все они только обновляют одну метку.
Я не могу использовать шаблон дизайна в стиле singeleton, потому что UIPageViewController требует как минимум 2 экземпляра моего контроллера представления.
soundPlayer shoudn't не выделяется при каждом создании нового insatnce viewcontroller. как я должен решить эту дилемму?Как использовать статические переменные в моем UIViewController

вы можете увидеть пример моей проблемы в приложении погоды. см ниже изображение: enter image description here

скачать образец кода: http://upload.ugm.ac.id/300paging.zip

ответ

1

единственное изменение, которое я должен сделал это, чтобы создать статический AVAudioPlayer

статическая AVAudioPlayer * SoundPlayer;

soundPalyer is Static, поэтому для всех объектов этого класса есть один.

и в методе ViewDidLoad:

if (!soundPlayer) { 
     soundPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:&error]; 
    } 

поэтому при переходе с одной ViewController к другому ViewController, SoundPlayer обыкновение инициализируется снова и продолжить игру.
вот все.

Смежные вопросы