Как программно открыть контроллер представления и представить новый - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь представить viewController, и когда пользователь касается кнопки, я хочу вызвать popViewController, а затем представить другой viewController. Но я не могу понять, как это сделать.

Некоторые из тех вещей, которые я пробовал, - это вызов вызова, а затем немедленный вызов присутствия, вызов присутствия после задержки, добавление вызова в блок завершения и затем в вызов вызова блока завершения, а также другие идеи.

Я думаю, что я слишком усложняю все это, я считаю, что это должен быть простой способ сделать это.

Спасибо за любую помощь в этом.

РАЗЪЯСНЕНИЯ:

Я делаю это на ощупь:

        if let vc = UIStoryboard(name: "Listing", bundle: nil).instantiateInitialViewController() as? ListingViewController
    {
        vc.listing = listing
        vc.editListing = forEdit
        vc.title = " "
        self.navigationController?.pushViewController(vc, animated: true)
    }

Из этого ВК, когда пользователь касается кнопки, я делаю это:

self.navigationController?.popViewController(animated: true)

Когда венчурный капитал уходит, я хочу сделать что-то вроде этого:

        if let vc = UIStoryboard(name: "CreateListing", bundle: nil).instantiateInitialViewController() as? NewCreateListingViewController
    {
        vc.bMakeSimiliar = makeSimiliar
        vc.listing = listing
        vc.editListing = editListing
        vc.title = " "
        self.navigationController?.pushViewController(vc, animated: true)
    }

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

Когда я выполняю приведенный выше код для представления нового VC, ничего не происходит. Я делаю это сразу после popViewController.

1 Ответ

0 голосов
/ 14 сентября 2018

Вы не используете pop для представления следующего контроллера в стеке.Pop фактически перемещается назад от текущего контроллера.

Чтобы выполнить то, что вы пытаетесь достичь, вам нужно вызвать метод navigationController.pushViewController(viewController: UIViewController, animated: Bool).

Чтобы вернуться к какому-либо предыдущему контроллеру представления, выиспользуйте: navigationController.popViewController(animated: Bool)

Чтобы получить доступ к корневому контроллеру представления, вы используете: navigationController.popToRootViewController(animated: Bool)

Чтобы получить доступ к какому-либо конкретному контроллеру представления в используемом стеке: popToViewController(viewController: UIViewController, animated: Bool)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...