Присутствует ниже текущего представления, а не выше - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь представить контроллер представления ниже другого представленного контроллера представления (например, WhatsApp, когда вы открываете камеру и нажимаете галерею).

Я пробовал много вещей, но ни одна не работала ..

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Вы можете воспроизвести это поведение, выполнив следующие действия:

Сначала создайте NavigationController с корнем ViewController:

let navController = UINavigationController(rootViewController: firstController)

Затем представьте этот навигационный контроллер с animated: false и в завершение метода present нажмите второй ViewController, все еще с animated: false (чтобы избежать странных анимаций):

    present(navController, animated: false) {
        navController.pushViewController(secondController, animated: false)
    }

Итак, вы получили новую навигацию с2 UIViewController, как WhatsApp.

Полный код, завернутый в действие кнопки:

@IBAction func buttonTapped(_ sender: Any) {

    let navController = UINavigationController(rootViewController: firstController)

    present(navController, animated: false) {
        navController.pushViewController(secondController, animated: false)
    }
}
0 голосов
/ 22 февраля 2019

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

//code inside UIViewController class
   func addViewControllerAtBottom() {
       let newVC = NewVCType() //just instantiate it
       addChildViewController(newVC)
       view.insertSubview(newVC.view, at: 0)  //at 0 means it's first rendered, all others will be on top of it
   }
...