gpt4 book ai didi

ios - 如何以编程方式弹出一个 View Controller 并呈现一个新的

转载 作者:行者123 更新时间:2023-12-01 18:37:02 26 4
gpt4 key购买 nike

我想做的是呈现一个viewController,当用户触摸一个按钮时,我想调用popViewController,然后呈现一个不同的viewController。但我不知道该怎么做。

我尝试过的一些事情是调用pop然后立即调用present,延迟后调用present,使用完成 block pup pop,然后在完成 block 中调用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)
}

基本上我的用户正在查看第一个 Controller ,它是一个列表,从列表 VC 他触摸一个按钮来添加一个新列表,所以我想关闭 ListView Controller 并向他展示创建 ListView Controller 。

当我执行上面的代码来展示新的 VC 时,什么也没有发生。我在 popViewController 之后立即执行此操作。

最佳答案

您不使用 pop 在堆栈中显示下一个 Controller 。 Pop 实际上是从当前 Controller 导航回来的。

要执行您想要达到的目标,您需要调用 navigationController.pushViewController(viewController: UIViewController, animated: Bool)方法。

为了回到您使用的一些以前的 View Controller :navigationController.popViewController(animated: Bool)
为了访问您使用的 Root View Controller :navigationController.popToRootViewController(animated: Bool)
为了获得您使用的堆栈中的某些特定 View Controller :popToViewController(viewController: UIViewController, animated: Bool)

关于ios - 如何以编程方式弹出一个 View Controller 并呈现一个新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52333917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com