0

My ViewsPresentViewController Скрытие UINavigationBar

  • ViewController: взгляд дома, UINavigationController
  • IntroViewController: интро вид, нет UINavigationController

В начале кода я использовал немного чек посмотрите, видел ли пользователь переднее представление, если нет, я использовал следующий код для получения от ViewController до IntroViewController:

IntroViewController *introViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"IntroViewController"]; 
      [self presentViewController:introViewController animated:NO completion:nil]; 

Все работало отлично, интро играл хорошо, то при переходе обратно в ViewController со следующим кодом, то UINavigationBar и UIToolbar исчез, но содержание зрения остается видимым:

ViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"]; 
      [self presentViewController:homeViewController animated:NO completion:nil]; 

Я чувствую, что мне не хватает чего-то маленького, я просто не могу его найти. Может кто-нибудь, пожалуйста, предоставит мне некоторые предложения?

ответ

0

Это происходит из-за того, что вы представляете контроллер представления как «это». Уверен, у вас нет UINavigationController, который контролирует ваш HomeViewController в раскадровке, правильно? И, конечно, IntroViewController имеет в нем UINavigationController (или это «контролируется» на UINavigationController), правильно?

Решение состоит в том, чтобы добавить UINavigationController, который будет управлять вашим HomeViewController. В этом случае все будет хорошо.

Но не забывайте, что с этого момента у вас будет 2 разных экземпляра UINavigationController.

Когда контроллер будет представлен, его точка зрения является добавлен квид иерархии, а не к навигации стека.

Из -[UIViewController presentViewController:animated:completion:] документации:

Этот метод устанавливает свойство presentedViewController к указанному контроллеру представления, изменяет вид этой точки зрения контроллера, а затем добавляет вид в иерархии представлений

Для справки, пожалуйста, читать this.

0

Если вы хотите вернуться к представленному вами контроллеру, вы не представите другой экземпляр этого контроллера, что вы делаете. Вы распускать себя,

[self dismissViewControllerAnimated:YES completion:nil]; 
0

The presentviewcontroller Митосе заменить весь вид, так что если у вас есть какие-либо Панель навигации или панель инструментов .. он не будет отображаться.

Если вы хотите вернуться к предыдущему просмотру ..Вы должны использовать

[self dismissViewControllerAnimated:YES completion:nil]; 

если по какой-либо причине ... Вам нужно создать новый экземпляр этой точки зрения .. Вы должны создать новый навигационный контроллер установлен контроллер представления назначения в качестве RootViewController ... и представляете navigationcontroller. Это заставит навигацию снова появиться.

GL HF

Смежные вопросы