2010-08-02 5 views
2

Пожалуйста, несите меня, это, вероятно, очень простая проблема для эксперта, но я новичок в этом языке.Могут ли объекты вызывать основное приложение?

Я пытаюсь создать приложение, которое динамически генерирует и выпускает серию представлений, которые отображаются в главном окне. Проблема, с которой я сталкиваюсь, заключается в обмене между ними. Я хочу, чтобы в каждом представлении содержались кнопки, которые вызывают изменение вида. Я могу сделать вид закрытым, но я не знаю, как заказать основную программу, чтобы изменить свое собственное представление на что-то новое, когда это было сделано (т. Е. Сообщение основного приложения из одного из его дочерних объектов). Я полагаю, что я мог бы сделать основной взгляд приложения на глобальный, но я бы скорее смог напрямую связаться с основным приложением, поскольку это поражает меня как немного опрятного и менее подверженного другим проблемам. Проблема в том, что я не знаю идентификатор основного приложения. Удобный идентификатор «self» используется так часто, что я никогда не видел фрагмента кода, который содержит идентификатор основного приложения, которое может быть вызвано извне. Было бы также полезно связать объекты файла NIB напрямую с атрибутами, содержащимися в основной программе.

Неужели я об этом совершенно не так? Существует ли общий идентификатор основного приложения? Можно ли создать один, если он не создается автоматически?

-Ash

ответ

2

Предполагая, что «основным приложением» вы имеете в виду ваше приложение делегата, вы можете получить его с помощью this method:

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 
+0

Это действительно не работает, не знаю почему. Должен быть какой-то простой способ сообщения делегата приложения из другого контроллера представления? – Ash

+0

Вы включили файл делегата приложения в контроллер просмотра, к которому вы пытались получить доступ? Получали ли вы доступ к объекту через 'appDelegate.myObject'? метод декана правильный – iwasrobbed

+2

Что значит «не работает» - он компилируется? Вы получаете сообщение об ошибке при запуске приложения? Это крушение? – deanWombourne