Я делаю объективный c в течение 2 дней, поэтому, если это ужасный вопрос, я приношу свои извинения. Поэтому, по сути, я использую раскадровку для создания приложения для iPhone. На одной из ячеек моего представления динамически создаются на основе того, что нужно отображать в json-формате через HTTP-запрос. Когда выбрана одна из этих ячеек, должно появиться представление, то же представление для каждой ячейки (не вопрос о Segue's). Это представление будет полагаться на то, какая из ячеек выбрана (и не только эта, но другая информация из json, которая не отображается пользователю). Следовательно, мне нужно передать NSDictionary в дочерний вид. Я уверен, что это тривиально, но я не нашел решения. Заранее благодарю за любую помощь.Передача NSDictionary из родительского представления в дочерний вид (новейший xcode)
ответ
Как сказал Тим, вы объявляете свойство для объекта словаря, то в файле исходного кода VC (файл .m), вы:
#import "ChildViewController.h" // Replace that with the name of the class for your child VC
и сделать это в методе prepareForSeque:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure we are dealing with the proper Segue
if ([segue.identifier isEqualToString:@"mySegueID"]) // ALWAYS use identifiers for your Segues
{
// Setup the destination ViewController
ChildViewController *cvc = segue.destinationViewController;
// Set the dictionary object property on the ChildViewController
cvc.myDict = TheDictionaryObjectYouWantToPass;
}
}
Это, как вы передаете объекты с помощью раскадровки. Метод, который будет вызван, когда у вас есть Segue, является метод prepareForSegue. Здесь вы передаете объекты и делаете что-либо, связанное с настройкой контроллера представления назначения.
Вы бы использовали свойства. Свойства - это внешние значения класса. Они могут быть установлены или прочитаны. Когда вы определяете свойство, Xcode синтезирует сеттеры и геттеры, то есть автоматически создает методы класса и setVariable:(type)
класса, используя предоставленные стратегии: retain
означает, что класс сохранит его - в отличие от assign
, где класс не зависает на нем, а nonatomic
означает, что он обновит его вместо того, чтобы копировать новое значение в другую часть памяти и обновлять ссылку только после ее завершения. nonatomic
обычно используется в приложениях, где безопасность потоков менее опасна, так как она быстрее, чем atomic
, но она не является потокобезопасной.
В заголовке вашего зрения ребенка:
@property (nonatomic, retain) NSDictionary* myDict;
В методе вашего родительского вида, который представляет точку зрения ребенка
// ... code which allocs child view here...
[childView setMyDict:theDict];
// ... code which presents child view here...
Поскольку я использую раскадровки, нет кода, который выделяет дочерний вид? Ну код, который я редактирую. – user1170665
См. Ответ ElJay. – Tim
Уважаемый Тим, w.r.t. ваш ответный сегмент - * и неатомный - это какой-то балони никто не знает, как он работает, но он связан с синхронизацией блокировки потоков. - * Это имеет все, что связано с синхронизацией потоков. См. Ссылку: http: //webcache.googleusercontent.com/search? Q = cache: QhnQmTk3rQIJ: http: //stackoverflow.com/questions/588866/atomic-vs-nonatomic-properties%2Bdeveloper.apple+: + iphone + неатомический & ае = UTF-8 & RLS = org.mozilla% 3Aen-США% 3Aofficial & клиент = светлячок-а & gs_l = реликвия-serp.3 ... 5527.10398.0.10658.30.26.0.1.0.4.315.3136.11j7j4j3.25.0 ... 0.0 ... 1ac.1.iYOL3a6g7To & hl = en & ct = clnk –
- 1. Ember.js: передача параметров из родительского представления в вложенный дочерний вид
- 2. Передача проанализированных данных из родительского представления в дочерний вид с использованием segue
- 3. Скрыть дочерний вид, если высота родительского представления меньше определенного предела
- 4. Передача данных в дочерний контейнерный вид
- 5. backbone.js: не удалось вызвать пользовательский вид из родительского представления и связать с ним дочерний вид.
- 6. Каскад значения настраиваемого атрибута из родительского представления в дочерний режим?
- 7. Передача полей из родительского вида модели в дочерний (частичный) вид MVC + Razor
- 8. Передача пустого дочернего объекта из родительского объекта в частичный вид
- 9. Передача данных из родительского компонента в дочерний компонент в vue.js
- 10. Ссылаясь на дочерний вид из родительского представления при щелчке или событии события в TI
- 11. Передача контекста данных пробела из родительского шаблона в дочерний
- 12. Передача данных из родительского процесса в дочерний процесс - IPC, UNIX
- 13. Android - Передача данных из родительского фрагмента в дочерний фрагмент
- 14. Передача параметра из родительского в дочерний ASP GridView (C# codebehind)
- 15. Передача массива из родительского шаблона в дочерний шаблон
- 16. Angular2 Routing - Передача данных из родительского компонента в дочерний компонент
- 17. Отправка частичного представления данных из родительского представления
- 18. Как я могу установить часть представления на свой дочерний вид
- 19. Передача частичного представления данных в родительский вид
- 20. Передача данных в ViewController из пользовательского представления
- 21. новейший Xcode 7.1 LaunchScreen.xib warning
- 22. Как вызвать вспомогательный вид из другого подвидного представления в xcode
- 23. Передача переменной из модального представления таблицы в родительский вид
- 24. Передача словаря из представления Djanjo в другой вид через javascript
- 25. Передача данных из коллекции синтаксического представления в новый вид
- 26. Как передать данные с родительского представления на дочерний при открытии?
- 27. Перенос объекта из родительского в дочерний.
- 28. вызовите метод родительского представления из представления, встроенного в UIContainerView. swift
- 29. Как применить анимацию только для родительского представления?
- 30. Передача NSArray в NSDictionary
Убедитесь, что свойство «сохранить» или «скопировать», чтобы избежать потери данных в другом месте –