Ios 如何使用popToViewController
我试图导航到另一个ViewController,但它没有通过segue连接,因此我对导航栏进行了编程,当y按下名为“重新启动”的按钮时,我请求的ViewController出现,但出现以下错误: “无法转换MemeEditorViewController类型的值。类型yo应为参数类型UIViewController” 所以我不知道该怎么处理。这是我的密码,也许你能帮我更好Ios 如何使用popToViewController,ios,swift,Ios,Swift,我试图导航到另一个ViewController,但它没有通过segue连接,因此我对导航栏进行了编程,当y按下名为“重新启动”的按钮时,我请求的ViewController出现,但出现以下错误: “无法转换MemeEditorViewController类型的值。类型yo应为参数类型UIViewController” 所以我不知道该怎么处理。这是我的密码,也许你能帮我更好 override func viewDidLoad() { super.viewDidLoad()
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)
}
}
}
如果只有一个
viewcontroller
类型为MemeEditorViewController
的控制器,则可以通过以下方式找到该控制器并将其弹出:
let vc = self.navigationController?.viewControllers.filter({$0 is MemeEditorViewController}).first
self.navigationController?.popToViewController(vc!, animated: true)
或者您需要知道vc在堆栈中的位置,然后找到它:
let vc = self.navigationController?.viewControllers[1]
注意:按下viewcontroller
时,navgationcontroller
将其存储在数组viewcontrollers
中,并带有强引用。您可以找到已推入的viewcontroller
实例
希望有帮助:DPopViewController不是按视图控制器,它的功能与按下按钮类似,然后从VC1导航到VC2,在VC2上有一个名为B的按钮。现在,当您按下B键并使用PopToViewController时,它将导航到VC1。。因此,它不会推动其流行(BackToPrevious)ViwController。(这里是VC->ViewController)你到底需要从A-B推什么,或者想要从B-A弹出什么?太好了…你救了我一天,先生:-)这应该被标记为答案