大佬教程收集整理的这篇文章主要介绍了ios – 如何在Swift中替换ViewController?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
let vc1 = ViewController1() present(vc1,animated: true,completion: nil)
现在,我想在ViewController1中显示ViewController2.@H_262_10@
@IBACtion func buttonEvent(_ sender: UIButton) { let vc2 = ViewController2() self.present(vc2,completion: nil) }
问题是:我想显示ViewContoller2,而当调用按钮事件时,当前的ViewController被解除.@H_262_10@
这样做我想动画.@H_262_10@
谢谢.@H_262_10@
guard var viewControllers = sourceViewController.navigationController?.viewControllers else { return } // FIXME: Result of call to 'popLast()' is unused // Pop sourceViewController viewControllers.popLast() // Push targetViewController viewControllers.append(targetViewController) sourceViewController.navigationController?.setViewControllers(viewControllers,animated: truE)
首先在导航堆栈中获取viewControllers.弹出当前并追加目标.然后,将堆栈设置为更新的viewControllers.@H_262_10@
附加@H_262_10@
(对于那些不使用NavigationController的人)@H_262_10@
我在给定答案中意识到可能存在问题.因此,我想做这个补充.继续之前检查documentation of parent.我想强调这一部分:@H_262_10@
简而言之,如果你想要关闭当前的UIViewController(sourceViewController)并呈现下一个(targetViewController),你应该通过presentViewController调用current()调用当前的.@H_262_10@
weak var presenTingViewController = self.presenTingViewController sourceViewController.dismiss(animated: true,completion: { presenTingViewController?.present(targetViewController,animated: false,completion: nil) })
虽然这次可能会看到转换,但在sourceViewController的dismiss()完成结束时,presentViewController将一直显示,直到targetViewController出现.我不知道你是否期望这种行为.如果不是,我现在无法提出解决方法来防止这种情况发生.@H_262_10@
以上是大佬教程为你收集整理的ios – 如何在Swift中替换ViewController?全部内容,希望文章能够帮你解决ios – 如何在Swift中替换ViewController?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。