2010-04-26 2 views
2

Я читаю: iPhone: How to Pass Data Between Several Viewcontrollers in a Tabbar App и было интересно, в чем разница междуПараметры Inter-ViewController, проходящие в iPhone программирования ... как?

[[UIApplication sharedApplicaton] delegate] 

и

extern struct* global 

?

Концептуально, я не вижу, как делегат [[UIApplication sharedApplicaton]] не является глобальным. Фактически, это уменьшает чувство вины при использовании грязной глобальной структуры * сейчас.

Я очень скоро начинаю новый проект. Таким образом, я использую этот перерыв, чтобы задать вопрос: есть ли какой-либо пример кода примера с наилучшей практикой, чтобы проиллюстрировать, как обмениваться данными между двумя ViewControllers (но не глобально)?

Позвольте мне поставить его в пример:

  • это игра
  • есть NSString * имя для хранения имя игрока
  • есть счет NSInteger сохранить текущий счет игрока
  • GameMainViewController будет обновлять и отображать счет
  • в GameSettingViewController, есть текстовое поле, чтобы изменить имя и кнопка для сброса оценки
  • GameMainViewController отвечает за имя набора по умолчанию (если нет), кроме как имя и оценка при выходе, загрузите и (если есть) при запуске

так

  • , где я должен поставить " имя "и" оценка "?
  • как можно оба ViewControllers доступа и изменения значения

спасибо!

ответ

3

Вы можете сохранить имя и счет в NSUserDefaults.

Получить позицию:

NSString *name = [[NSUserDefaults standardUserDefaults]objectForKey:@"name"]; 

Установка элемента:

[[NSUserDefaults standardUserDefaults]setObject:@"Horace" forKey:@"name"]; 

Кроме того, если это данные, которые вы хотите сохранить через запуски приложения, вы можете архивировать его в plist.

Смежные вопросы