Черная область с interactivePopGestureRecognizer при подключении контроллера представления с видимой панелью навигации к контроллеру со скрытой панелью навигации
У меня есть этот ViewController #1, который является корневым контроллером представления контроллера навигации и имеет
self.navigationController.navigationBarHidden = YES;
ViewController #1 сообщает своему навигационному контроллеру нажать ViewController #2, который имеет
self.navigationController.navigationBarHidden = NO;
Когда я хочу вернуться от ViewController # 2 к ViewController #1, проведя пальцем с левой стороны экрана, я вижу свои виды как скриншот, который я прикрепил здесь. Это фиксируется, когда я двигаю пальцем вправо, так что, продолжая смахивать вправо, черная область в верхнем правом углу становится все меньше и меньше, пока ViewController #1 не покрывает всю область экрана.
Я предполагаю, что это вызвано скрытой / видимой разницей в навигационной панели между двумя контроллерами представления.
Я хотел бы узнать, возможно ли избавиться от этой черной области.
2 ответа
Как обсуждалось с HoanNguyen, я поместил свой код, чтобы скрыть / показать панель навигации на viewWillAppear/Disappear, но в конце концов я понял, что хитрость заключается в том, чтобы установить анимированные значения. Странно, но это решило мою проблему и черная область теперь исчезла:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:self.shouldHideNavBar animated:animated];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:!self.shouldHideNavBar animated:animated];
}
Вы должны поместить свой кодовый набор скрытой / показанной навигации в viewWillAppear или viewDidAppear.