Форум программистов, компьютерный форум CyberForum.ru

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
alazir
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 10
#1

Обновление одного контроллера другим - Программирование iOS/iPhone

21.12.2015, 21:08. Просмотров 313. Ответов 4
Метки нет (Все метки)

Здравствуйте, уважаемые коллеги!

Решил вот написать программу в OS X с "хорошо пахнущим кодом". Отделил бизнес-логику в отдельные классы, Core Data спрятал за Facade, сделал большой StoryBoard с отдельными ViewController-ами. Получилось вроде красиво.
Но вот незадача. Есть один контроллер который обслуживает список данных. Текущий объект списка хранится в Синглетоне бизнес-логики. Но как бы покрасивее заставить другой контроллер, описывающий View с деталями, обновиться, как только обновится этот самый текущий объект?

Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2015, 21:08     Обновление одного контроллера другим
Посмотрите здесь:

Анимация текста, заливка другим цветом Objective-C
обновление списка
Обновление данных в таблице
Сохранение информации при переходе от одного контроллера к другому
Обновление XCode -> тормоза в StoryBoard
Обновление UITableView после изменеия массива
Файловый менеджер открытие нужного контроллера
Инверсия части изображения при перекрытии другим изображением Objective-C
Objective-C Открытие второго контроллера после удачного POST запроса
Обновление Enterprise приложения
Обновление Annotation на MKMapView Swift
Обновление iphone 4s

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vitalik_a
4 / 4 / 1
Регистрация: 11.09.2014
Сообщений: 81
21.12.2015, 23:23     Обновление одного контроллера другим #2
например в Синглетоне бизнес-логики отправлять сообщение
[[NSNotificationCenter defaultCenter] postNotificationName:@"dataUpdated"
object:self];
а в контроллере ловить это сообщение
alazir
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 10
21.12.2015, 23:27  [ТС]     Обновление одного контроллера другим #3
vitalik_a, спасибо! Такой вариант был среди идей. Наверное, так и сделаю. Очень по-эйпловски
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
19.01.2016, 00:18     Обновление одного контроллера другим #4
Можно передать его (объект) типа так:

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        let checklist = lists[indexPath.row]
        performSegueWithIdentifier("ShowChecklist", sender: checklist)
    }
    
    // MARK: Navigation
 
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        
        if segue.identifier == "ShowChecklist" {
            let controller = segue.destinationViewController as! CheckListViewController
            controller.checklist = sender as! Checklist
        }
    
    }
Vorona
Peace 2 all shining faces
666 / 528 / 45
Регистрация: 05.03.2010
Сообщений: 1,271
19.01.2016, 03:50     Обновление одного контроллера другим #5
у меня дежавю? или пару тем назад я видел ну в точности такой же вопрос?
Yandex
Объявления
19.01.2016, 03:50     Обновление одного контроллера другим
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru