У меня есть два диспетчера представлений: MainController и OptionsController. OptionsController можно получить с помощью кнопки MainController. В OptionsController есть некоторые значения, которые я могу сохранить с помощью NSUserDefaults. Эти значения необходимы в MainController. Если я изменю эти значения в OptionsController, когда вернусь в MainController, они не изменятся, но если я снова запустил MainController, эти значения были изменены правильно. Похоже, что когда MainController снова активируется, после выхода из OptionsController viewDidLoad больше не создается. Как я могу обновить данные в MainController, пожалуйста?Обновление данных NSUserDefaults в одном ViewController, измененном в другом ViewController
ответ
Как пишет rounak, viewDidLoad
вызывается только один раз в жизни контроллера вида. Если у вас есть код, который вы хотите исполнять каждый раз, когда отображается контроллер вида, поместите его в viewWillAppear
.
NSUserDefaults
- довольно тяжелый способ передачи информации между объектами в памяти (она записывает на диск). Если вам не нужна настойчивость между прогонами, один из других вариантов, которые он предложил, будет лучше. Я бы предложил шаблон делегата или блок завершения.
Мне также нужны данные о сохранении. Я буду искать ваши показания. спасибо – Paolovip
viewDidLoad вызывается только один раз для контроллера вида. Вы можете использовать NSNotification, KVO, блоки или что-то вроде шаблона делегирования, чтобы получить обратный вызов в вашем MainController всякий раз, когда значение изменяется внутри OptionsController.
В противном случае вы можете написать код в viewWillAppear, который вызывается каждый раз, когда вы выпадаете на контроллер опций.
Хорошо, спасибо, я проверю NSNotification, KVO и блокирует ... – Paolovip
- 1. Идентификация экземпляра ViewController в другом ViewController
- 2. NSUserDefaults в SWIFT - Intro ViewController
- 3. Показать весь ViewController в другом представлении ViewController
- 4. ViewController в другом файле
- 5. Невозможно нажать viewController внутри метода ViewDidload в другом Viewcontroller
- 6. Изменение элемента в другом ViewController
- 7. Представление ViewController после сброса NSUSerDefaults
- 8. изменить свойство в другом viewcontroller
- 9. Делегат TextField в другом ViewController
- 10. viewController в другом виде контроллер
- 11. UIButton addTarget в другом ViewController
- 12. Несколько UITableView в одном ViewController
- 13. Три UIPickerViews в одном ViewController
- 14. Multiple UIPickerView в одном ViewController
- 15. Вращение только в одном ViewController
- 16. Как показать ViewController с Xib в другом ViewController как SubView
- 17. Контрольные vars/IBOutlets от одного ViewController в другом ViewController
- 18. Как подобрать ViewController в SubView другого ViewController
- 19. Unwind ViewController
- 20. Обновление данных из api после растяжения viewcontroller
- 21. Сохранение данных в ViewController (при удалении или в ViewController)
- 22. refresh uitable из viewcontroller из другого viewcontroller
- 23. Как изменить текст ярлыка на одном ViewController из другого ViewController
- 24. Как использовать переменную в другом viewController? - Swift
- 25. Добавить viewcontroller в раскадровку
- 26. Передача данных между ViewController и TableVC с помощью NSUserDefaults (Swift)
- 27. Доступ к переменным в другом viewcontroller - swift
- 28. Доступ к Subview в другом ViewController?
- 29. didSelectRowAtIndexPath метод не вызывается в другом viewcontroller
- 30. Функция Reach в другом файле viewcontroller?
Ответ дает ответ, который вам нужен. Просто найдите, как использовать NSNotification. Вы должны проголосовать за ответ, если это будет полезно. Это побудит других помочь вам в будущем. –
Вы правы, и оба ответа дали мне несколько хороших идей, но, к сожалению, я не могу голосовать, потому что мои очки репутации меньше 15. – Paolovip
OK - Я просто предал вас за предел. Проголосуйте. BTW, принимающий ответ, который наиболее полезен, даст вам два дополнительных момента, поэтому нажмите зеленую галочку, если один из ответов очень полезен. Поиск SO для использования NSNotifications, и вы на своем пути. –