首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用popToViewController

如何使用popToViewController
EN

Stack Overflow用户
提问于 2016-06-23 08:54:05
回答 1查看 4.2K关注 0票数 2

我正在尝试导航到另一个ViewController,但它不是通过段连接的,所以我对导航栏进行了编程,当y按下名为"Start Over“的按钮时,我想要的是我请求的ViewController出现,但出现以下错误:

“无法转换预期参数类型UIViewController的MemeEditorViewController.Type yo类型的值”

所以我不知道该怎么处理。这是我的代码,也许你可以帮我做得更好。

代码语言:javascript
复制
override func viewDidLoad() {
        super.viewDidLoad()
        self.navigationItem.rightBarButtonItem = UIBarButtonItem(title:"Start Over", style: .Plain, target: self, action: "startOver")
    }
    func startOver(){
        if let navigationController = self.navigationController {
            navigationController.popToViewController(MemeEditorViewController, animated: true)
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2016-06-23 09:10:23

如果只有一个类型为MemeEditorViewControllerviewcontroller,您可以找到控制器并以这种方式弹出到它:

代码语言:javascript
复制
let  vc =  self.navigationController?.viewControllers.filter({$0 is MemeEditorViewController}).first

self.navigationController?.popToViewController(vc!, animated: true)

或者你需要知道vc在堆栈中的位置,然后找到它:

代码语言:javascript
复制
let  vc =  self.navigationController?.viewControllers[1]

注意:当您推送viewcontroller时,navgationcontroller会将其存储在具有强引用的数组viewcontrollers中。您可以找到您推送的viewcontroller实例。

希望它能有所帮助:D

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37980570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档