#iphone #ios4 #iphone-sdk-3.0
#iPhone #ios4 #iphone-sdk-3.0
Вопрос:
Я пытаюсь разработать приложение для прослушивания музыки с iPod (аналогично примеру AddMusic). У меня есть ViewController с пользовательским представлением, в котором есть некоторая графика и кнопки для управления воспроизведением музыки. С помощью NavigationController я могу выбрать список музыки с iPod и показать его в пользовательском интерфейсе (как AddMusic).
Теперь я должен запрограммировать все методы для управления списком музыки для воспроизведения, остановки, воспроизведения, продолжительности и т.д.
Мой вопрос:
Чтобы следовать шаблону контроллера представления модели, где лучше всего запрограммировать все эти методы (для управления музыкой), которые не являются представлениями, в главном ViewController или в представлении, где у меня есть кнопки, которые взаимодействуют с пользователем?
Я думаю, что ответом должен быть основной ViewController, но в таком случае, как я могу получить доступ к этим методам из представления, где у меня есть кнопки пользовательского интерфейса, и я управляю некоторой графикой? потому что в UIView нет чего-то вроде ‘parentViewController’.
Большое вам спасибо.
Kanick
Ответ №1:
Вы можете объявить класс, который наследует именно этот основной ViewController. И во втором контроллере представления вы можете создать экземпляр этого класса. В конечном итоге этот объект будет содержать всю имеющуюся у вас информацию в главном контроллере представления.
Комментарии:
1. Спасибо @Mikayil, я попробовал твою идею. У меня действительно нет двух контроллеров представления. У меня есть 1 ViewController (мой mainViewControler) и представление (то есть [MainViewController setView: MyView]). В любом случае, я сделал то, что вы предложили, я объявил новый класс -> @interface inheritsFromMyMainViewController : myMainViewController{}. Хорошо, я могу получить доступ к методам myMainViewController, но не к его ivar (возможно, я что-то сделал неправильно), потому что отправителем (id) является MyView, и другой момент заключается в том, что мне нужно иметь дело с currentTime, чтобы переместить графику. Я прав?
2. Соглашение о доступе к ivar объекта заключается в @property . Если у вас нет ни объявленных свойств для ivars, ни методов getter и / или setter, вы никак не сможете получить к ним доступ. Поэтому, пожалуйста, убедитесь, что вы используете любой из этих способов. Я, конечно, предлагаю использовать @property way, поскольку это делает возможным использование синтаксиса dot. Но я не понял взаимосвязи между currentTime и графическими элементами move.