Запретить ViewController от укладки в фоновом режиме при создании с настоящим - PullRequest
0 голосов
/ 24 февраля 2020

Я использую этот код для открытия нового ViewController:

// Get a random next post
@IBAction func buttonNextPostTapped(_ sender: UIButton) {

    let postNumber = Int.random(in: 0 ..< postIds.count)
    let postId = postIds[postNumber]

    PostApi.shared.getPost(postId: postId) { (post) in
        let storyBoard : UIStoryboard = UIStoryboard(name: "MainApplication", bundle: nil)
        let nextViewController = storyBoard.instantiateViewController(withIdentifier: "PostsViewController") as! PostsViewController
        nextViewController.post = post
        nextViewController.isFromRandom = true
        self.present(nextViewController, animated: true, completion: {})
    }
}

Этот код откроет тот же ViewController с другими данными. Это работает, однако, «старые» ViewControllers будут складываться в фоновом режиме. Поэтому, если я открою 10 новых ViewControllers, у меня будет 10 В C в фоновом режиме.

Как я могу представить новый ViewController и удалить «старый»?

1 Ответ

0 голосов
/ 24 февраля 2020

Использование функции setViewControllers из UINavigationController - лучший способ.

func setViewControllers(_ viewControllers: [UIViewController], animated: Bool)

И вы можете удалить любой контроллер из стека, например

 if var navigationControllersArray:Array = (self.navigationController?.viewControllers) {
            navigationControllersArray.remove(at: navigationControllersArray.count-2)
            self.navigationController?.viewControllers = navigationControllersArray
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...