Как получить доступ к объектам приложения Delegate в RootViewController - PullRequest
1 голос
/ 28 декабря 2010

У меня есть приложение на основе навигации, в котором я вызываю веб-сервис. Я сделал всю работу, которая требуется в фоновом режиме для поглощения веб-сервисов. Осталось только отобразить его в виде таблицы. Данные, которые я хочу отобразить, хранятся в массиве Mutable, и я могу видеть данные в консоли, а это в делегате приложения. Я просто хочу как-то передать эти данные пользователю root, чтобы отобразить их в виде таблицы. Может ли кто-нибудь помочь мне с этим.

Ответы [ 4 ]

5 голосов
/ 29 ноября 2013

В файле appDelegate .h

@property(nonatomic,retain)NSMutableArray *array;

в файле AppDelegate.m

@synthesis array;

В файле rootViewController

 AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
 NSLog(@"array is %@",appDelegate.array);
5 голосов
/ 28 декабря 2010

Вы можете попробовать это:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
cell.textLabel.text = [appDelegate.yourArray objectAtIndex: indexPath.row];

Разумнее всего создать экземпляр NSMutableArray в корневом представлении, а затем получить этот фид из массива appDelegate.

0 голосов
/ 30 июня 2017

В Appdelgate.h создайте свою строку

@property (strong, nonatomic) NSString *deviceToken;
+ (AppDelegate *)getAppDelegate;

Appdelegate.m внедрите

+ (AppDelegate *)getAppDelegate{
  static AppDelegate* mAppDelegate = nil;
  if(!mAppDelegate)
  {
     UIApplication *lApplication = [UIApplication sharedApplication];
     if([lApplication.delegate isKindOfClass: [AppDelegate class]])
     {
         mAppDelegate = (AppDelegate *)lApplication.delegate;
     }
   }
 return mAppDelegate;
}

и получите доступ к этой строке там, где вам нужно, создайте переменную для appdelegate

AppDelegate *mLoginAppDelegate;

в viewdidload напишите эти строки

if(!mLoginAppDelegate)
    mLoginAppDelegate = [AppDelegate getAppDelegate];

NSLog(@"Device Token: %@", mLoginAppDelegate.deviceToken);
0 голосов
/ 29 декабря 2010

Я бы, вероятно, изменил бы ваш подход к проектированию и создал бы контроллер, который извлекает и сохраняет данные. Вы подключаете ваш AppDelegate к контроллеру и возлагаете на него ответственность за поиск данных. Это не обязательно соответствует подходу MVC, встроенному в iOS.

Создавая класс объектов данных, который отвечает за извлечение данных (например, вызов / кэширование данных веб-службы), вы делаете свой код более пригодным для повторного использования и более легким для использования частями вашей программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...