Панель вкладок с такими же навигационными контроллерами - PullRequest
1 голос
/ 20 декабря 2010

Я реализовал контроллер вида на основе навигации с несколькими видами и моделью.

Теперь я добавляю свой контроллер навигации на панель вкладок через конструктор интерфейса. (просто перетащил в него всю связку). Это сработало, у меня есть новая вкладка со всеми моими представлениями.

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

Так что мне нужен способ обновить мою модель, когда я переключаю вкладки.

Обновление:

Я добавил addObserver в свой RootViewController, содержащий представление таблицы. Я поместил его в «view is load», postNotification в моем методе удаления. Нет ошибок компиляции, но и таблицы не обновляют друг друга.

Я загрузил свой проект, может быть, вы могли бы посмотреть?:

http://www.perry -paul.de / unternehmenf.zip

1 Ответ

2 голосов
/ 20 декабря 2010

Один из способов сделать это - использовать NSNotifications.

Когда вы загружаете свой контроллер представления, содержащий tableView, зарегистрируйте свой tableView для уведомлений, используя

[[NSNotificationCenter defaultCenter] addObserver:self.tableView selector:@selector(reloadData) name:@"ModelUpdated" object:nil];

Таким образом, [self.tableView reloadData] будет вызываться каждый раз, когда вы публикуете уведомление "ModelUpdated". Поэтому, когда вы удаляете запись, отправьте уведомление, используя

[[NSNotificationCenter defaultCenter] postNotificationName:@"ModelUpdated" nil];

Наконец, не забудьте удалить уведомление (обычно в viewDidUnload):

[[NSNotificationCenter defaultCenter] removeObserver:self name:"ModelUpdated" object:nil];

Дополнительная информация о NSNotifications в этом вопросе: Что такое NSNotification?

...