Привет, коллеги-разработчики,
Я удивлен, что я не нашел никакой информации об этом конкретном случае использования для iOS 8. Позвольте мне объяснить, у меня есть стек контроллера навигации, первое представление имеет скрытую навигацию, когда пользователь нажимает на ячейку новый вид нажат, и мне нужно, чтобы панель навигации, показанная на этом представлении, возвращалась (очевидно). На iOS 7 это просто вопрос добавления этой строки в viewWillAppear:
[self.navigationController setNavigationBarHidden:NO animated:YES];
И это работает как шарм. Но с IOS 8 я изо всех сил стараюсь иметь такое же поведение. На данный момент мне удалось сделать то же самое, используя:
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0"))
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
- (void)viewDidLoad {
[super viewDidLoad];
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) {
self.automaticallyAdjustsScrollViewInsets = NO;
self.edgesForExtendedLayout = UIRectEdgeNone;
self.collectionView.contentInset = UIEdgeInsetsMake(self.navigationController.navigationBar.frame.size.height, 0, 0, 0);
} }
И изменение содержимогоИнтеллекция моих коллекцийView/tableviews, что мне нужно отображать. Он будет работать, но это настоящая боль в * (иногда вставка содержимого не требуется, если пользователь приходит из нового диспетчера представлений).
Для контекста проект был впервые разработан для обработки iOS 6 и 7, поэтому никакой раскадровки не делается программно. Я портировал приложение на более современную кодовую базу и сделал ее универсальной.
Я что-то упустил? Есть ли лучший способ справиться с этим в iOS 7/8?