Как отправить информацию между двумя видами (и, следовательно, двумя классами)? Я ищу делегата моего приложения? Есть ли лучший или альтернативный способ?Базовая концепция: связь между двумя видами?
ответ
Я бы воспользовался делегатом приложения. Или, если одно представление принадлежит другому, вы можете инициализировать их вместе и сохранить основную ссылку на него в классе.
Мне всегда полезно иметь глобальный объект Контекста для хранения глобальной информации среди просмотров. Это может быть информация о конфигурации, текущая ориентация устройства, обработчики базы данных и т. Д.
Для переменных, для которых необходим перекрестный доступ, вы можете использовать Свойства.
class VC1 : UIViewController {
NSString* v1;
NSString* v2;
}
@property (copy) NSString *v1;
@property (copy) NSString *v2;
А потом, в других точках зрения:
class VC2 : UIViewController {
VC1 *vc1;
}
И в вас реализациях сообщений в VC2 вы можете использовать v1 и v2 VC1 как это:
- (void) someMessage {
NSLog(@"VC1's v1 value is %@ and v2 value is %@", [vc1 v1], [vc1 v2]);
}
Надеется, что это помогает.
Если вы хотите отправить информацию обратно, вы можете использовать целевое действие (как это делает UIControl), или вы можете отправить NSNotifications или использовать общий протокол делегатов. Если это не является информацией о применении во всем приложении, размещение его в делете приложения может быть чрезмерным.
Я бы сказал, что хотя это быстрый и грязный способ передачи данных между видами, это не очень хорошая практика. Он объединяет контроллеры представлений и делает приложение сложным для поддержания и масштабирования. – TechZen
Он очень явно не объединяет ничего вместе. Где сцепление? –
+1 для NSNotifications и делегатов – Anurag
- 1. Горизонтальное прокручивание между двумя видами
- 2. Перетаскивание между двумя видами обработки
- 3. Перемещение документов между двумя видами
- 4. Совместное изображение между двумя видами
- 5. iPhone Переменная между двумя видами
- 6. отправка строк между двумя видами?
- 7. Отсутствует базовая концепция
- 8. Связь между двумя таблицами: установить связь между двумя таблицами
- 9. Связь между двумя контроллерами
- 10. Связь между двумя столбцами
- 11. связь между двумя моделями
- 12. связь между двумя объектами
- 13. Связь между двумя узлами
- 14. Связь между двумя объектами
- 15. связь между двумя приложениями
- 16. Связь между двумя фрагментами
- 17. Связь между двумя микросервисами
- 18. Связь между двумя сервера
- 19. Связь между двумя JFrames
- 20. Связь между двумя объектами
- 21. Связь между двумя ViewModels
- 22. Связь между двумя объектами
- 23. Связь между двумя pthreads
- 24. Связь между двумя адаптерами
- 25. Связь Между двумя потоками
- 26. Связь между двумя пользователями
- 27. Связь между двумя childViewControllers
- 28. Связь между двумя формами
- 29. Связь между двумя потоками
- 30. Связь между двумя таблицами
Где мои переменные и как одно представление знает о переменных в другом? – Moshe
Обновлен мой ответ с помощью некоторого кода. Надеюсь, поможет. –
Выглядит хорошо, но как мне получить значение VC1 в VC2? Будет ли каждый контроллер просмотра видеть другой через делегата сейчас? – Moshe