У нас есть приложение, которое уже есть в магазине приложений.
Теперь мы планируем уменьшить размер приложения путем программного создания всех представлений и удаления соответствующих файлов NIB (XIB).
Проблема в том, что даже когда перо удалено и не вызвано, обновленная версия приложения по-прежнему указывает на старое перо, и возникает проблема, подобная этой (это изображение является лишь примером, проблема постоянна во всем приложение):
По сути, представления создаются как IB, так и кодом.
Единственное решение, которое мы нашли, - это удалить и переустановить приложение, но просить всех пользователей сделать это нежелательно. Кроме того, это также приведет к удалению локально сохраненных данных приложения, что является главной проблемой, которую мы пытаемся здесь избежать.
В приведенном выше примере для загрузки ViewController использовался следующий код:
Ранее (когда представление было построено с использованием пера):
TheNewVC *theNewVC = [[TheNewVC alloc] initWithNibName:@"TheNewVC" bundle:nil];
[self presentModalViewController:theNewVC animated:YES];
Теперь (когда представление построено программно, что приводит к вышеуказанной проблеме):
TheNewVC *theNewVC = [[TheNewVC alloc] initWithNibName:nil bundle:nil];
UINavigationController *addNavCon = [[UINavigationController alloc] initWithRootViewController:theNewVC];
[self presentModalViewController:addNavCon animated:YES];
JFYI, даже если TheNewVC *theNewVC = [[TheNewVC alloc] initWithNibName:nil bundle:nil];
заменено на TheNewVC *theNewVC = [[TheNewVC alloc] init];
, проблема остается такой же.
Какое может быть решение, которое не включает переустановку приложения. В любом случае, мы могли бы программно удалить кеш Nib, на который ссылается iOS? ИЛИ в худшем случае, попросить пользователей сделать это? Любая помощь будет высоко ценится.