Я пытаюсь использовать NSKeyedArchiver для сохранения состояния моего UITabBarController. Внутри вкладок находятся UINavigationControllers, которые содержат UITableViewControllers.
Архивирование работает без проблем.
При разархивировании у меня возникают странные проблемы с моими UITableViewControllers. initWithCoder: вызывается правильно, и первое, что я делаю внутри, это вызов [super initWithCoder:]
TableView, по-видимому, правильно воссоздан, и для него уже установлены делегат и свойство dataSource. Если мой initWithCoder: ничего не делает, только вызывает super и возвращает self, тогда мое табличное представление оказывается пустым, и мои методы делегата не вызываются. Если я подключаю делегат и свойства dataSource к self.tableView, я вижу свое содержимое правильно, но didSelectRowAtIndexPath не вызывается при выборе, и в одном случае я не могу прокрутить, пока tableView не будет перезагружен.
Если в initWithCoder: я создаю новый UITableView, все работает, но я не верю, что мне нужно это делать.
Я делаю что-то, чего не должно быть при попытке сделать это, или я упускаю что-то очевидное, что мне нужно добавить, чтобы все работало правильно?
Обновление: установка self.tableView = [decoder decodeObjectForKey:@"tableView"]
внутри моего контроллера, похоже, решает проблему прокрутки / выбора, но в результате tableView всегда UITableViewStylePlain и все равно кажется неправильным, поскольку свойство уже установлено.