Как получить доступ к значению свойства класса AppDelegate из someView Controller без создания ссылки на делегат в контроллере вида?
Iphone получает доступ к значению свойства из AppDelegate
Ответ 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;