2015-04-24 3 views
-1

В моей раскадровке я создал учетную запись на Facebook, которая выбирает пользователей имя пользователя и изображение профиля. Я все это сделал в начальном UIViewController (AKA LoginViewController).Показать данные в других контроллерах представления

То, что я хочу сделать это, чтобы иметь возможность отправить эти данные (имя пользователя и профиль изображения) в других местах. Более конкретно, я хочу, чтобы иметь возможность:

  • дисплей извлеченной профиль изображения в UIImageView в
  • дисплей разные UIViewController имя пользователя, в другом текстовом поле в другом UIViewController

Если бы кто-то просто сказал мне, как это сделать, либо с примером кода, либо даже пошаговым руководством по раскадровке, я был бы очень благодарен.

ответ

-1

Сохраните данные, которые вы получили в LoginViewController, используя NSUserDefaults. Это система, обеспечивающая удобное хранение, которое предоставляет NSDictionary как доступ. Затем вы можете получать данные от других контроллеров.

Чтобы спасти от LoginViewController,

[[NSUserDefaults standardUserDefaults] setObject:@"user1" forKey:@"username"] ; 
[[NSUserDefaults standardUserDefaults] setObject:UIImageJPEGRepresentation(image, 1.0) forKey:@"picture"] ; 

Чтобы получить от другого контроллера представления,

NSString *username = [[NSUserDefaults standardUserDefaults] objectForKey:@"username"] ; 
UIImage *image = [UIImage imageWithData:[[NSUserDefaults standardUserDefaults] objectForKey:@"picture"]] ; 
+0

Это ужасная идея. Определенно не используйте NSUserDefaults для передачи данных вокруг вашего приложения. Он должен использоваться для сохранения данных между запусками приложений и обновлениями. – Groot

+0

Он предназначен для сохранения данных между запусками приложений, я надеюсь, что имя пользователя и фотографии профиля будут полезны при запуске приложений .. :). Это удобный способ хранения данных, он также является потокобезопасным, и нет жесткого правила о том, что сохранить в NSUserDefaults. Это тоже не влияет на производительность, в чем проблема? – Trident

+0

Это хранит данные, а затем читает их. Это не то же самое, что передавать данные между диспетчерами представлений, что и просит ОП. Если вы используете этот шаблон для передачи данных в своем приложении в том же сеансе, вы делаете это неправильно. NSUserDefaults следует использовать только для данных, которые вы хотите сохранить между сеансами приложений. – Groot