iPhone Dev: перезагрузка данных табличного представления с дочернего контроллера и другого контроллера в TabBar - PullRequest
5 голосов
/ 31 мая 2009

Я реализую приложение менеджера заметок, у которого есть tableView в tabBar, где отображается основная информация о его заметках. При доступе к одной заметке вы можете редактировать ее свойства. С помощью одной кнопки панели вкладок вы можете выбрать способ отображения заметок в табличном представлении.

Проблема в том, что я не знаю, как перезагрузить данные с дочернего контроллера или с другого контроллера tabBar. Я не знаю, как ссылаться на tableView из них, чтобы я мог использовать reloadData для обновления информации о TableView из них.

Я довольно новичок в разработке для iPhone ... любая помощь будет очень полезна.

Ответы [ 4 ]

8 голосов
/ 28 декабря 2010

Вы должны попробовать NSNotificationCenter.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomething:) name:@"doSomethingNotification" object:nil];

[[NSNotificationCenter defaultCenter] postNotificationName:@"doSomethingNotification" object:nil];
4 голосов
/ 31 мая 2009

Поместите код обновления таблицы в viewWillAppear: вместо viewDidLoad - таким образом, каждый раз, когда вы возвращаетесь к родительскому контроллеру из дочернего контроллера, данные перезагружаются.

2 голосов
/ 31 мая 2009

здесь поможет шаблон MVC,

до тех пор, пока вы будете обновлять свою модель необходимой информацией, а ваши контроллеры будут обновляться с этого модального режима Когда вы переключаетесь между представлениями, вы автоматически обновляете представления.

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

[tableviewController.tableview reloadData]; 

- это способ доступа к сообщению с данными перезагрузки.

0 голосов
/ 08 декабря 2011

Я столкнулся с той же проблемой, когда работал с прототипом клетки. Странно, я был совершенно уверен, что все сделал правильно.

Тогда я начал думать, если что-то не так с XCode. Поэтому я все очистил, перезапустил XCode, и он все еще жаловался.

Наконец, я попытался отредактировать свои последние изменения в доске раскадровки, которая заключается в добавлении класса tableviewcell, и подключил его ко всем моим элементам управления пользовательским интерфейсом. Наконец он перестал жаловаться.

Я не думаю, что эта ошибка вызвана вашим кодом или чем-то, я обнаружил несколько странных ошибок в iOS 5. Право, он все еще тестирует и содержит много ошибок.

Во всяком случае, раскадровка великолепна, и я постараюсь привыкнуть к ней, она рисует общую картину вашего приложения и легко справляется с отношениями между различными взглядами. Плюс мне очень нравится его метод подготовки к атаке.

ОК, удачи.

...