我想做的是呈现一个viewController,当用户触摸一个按钮时,我想调用popViewController,然后呈现一个不同的viewController。但是我不知道该怎么做。
我尝试过的一些事情是调用pop,然后立即调用present,在延迟后调用present,用完成块填充pop,然后在完成块中调用present,以及其他想法。
我认为我已经使整个事情复杂化了,我相信他们应该是一种简单的方法。
谢谢您的帮助。
澄清:
我做到这一点:
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)
}
在用户触摸按钮时从该VC中执行以下操作:
self.navigationController?.popViewController(animated: true)
当VC消失时,我想做这样的事情:
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触摸按钮以添加新列表,因此我想关闭列表视图控制器,并向他展示创建列表视图控制器。 / p>
当我执行上述代码以展示新的VC时,什么也没有发生。我在popViewController之后立即执行此操作。
答案 0 :(得分:1)
您不使用pop在堆栈中显示 next 控制器。 Pop实际上是从当前控制器向后导航的。
要执行您要实现的目标,您需要调用navigationController.pushViewController(viewController: UIViewController, animated: Bool)
方法。
为了回到以前的视图控制器,您可以使用:
navigationController.popViewController(animated: Bool)
要使用根视图控制器,请使用:
navigationController.popToRootViewController(animated: Bool)
要使用堆栈中的某些特定视图控制器,请使用:
popToViewController(viewController: UIViewController, animated: Bool)