Подтвердить что ты не робот

Iphone получает доступ к значению свойства из AppDelegate

Как получить доступ к значению свойства класса AppDelegate из someView Controller без создания ссылки на делегат в контроллере вида?

4b9b3361

Ответ 1

Я не совсем понимаю, что вы имеете в виду - есть несколько способов получить информацию от вашего делегата приложения в контроллер представления, и фраза "без создания ссылки делегата" неясна. Ваши варианты в основном:

  • Ссылка на делегат приложения, приведение в соответствие. Вы должны написать код в своем классе контроллера класса:
    id propertyValue = [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] myProperty];
  • Передайте свойство при создании контроллера вида. Для этого требуется, чтобы диспетчер представлений имел объявленный @property и @synthesize d, а затем делегат приложения просто установил свойство в экземпляре контроллера представления.

Ни один из этих параметров не требует, чтобы вы сохранили копию своего делегата приложения как @property, но первая ссылается на делегат один раз.

Ответ 2

[UIApplication sharedApplication].delegate

Вам также необходимо включить файл заголовка делегата приложения в контроллер вашего вида и, возможно, придумать делегат от id к вашему фактическому классу делегата приложения.

#include "MyAppDelegate.h"

((MyAppDelegate *)[UIApplication sharedApplication].delegate).myProperty;

Ответ 3

[UIApplication sharedApplication].delegate;