每当我在任何当前视图中点击左上角的“后退”按钮时,我想回到根视图。
我发现popToRootViewControllerAnimated
可能会有所帮助,但我不知道如何使用它,在视图类中添加它的位置。
也许我可以使用以下功能?
func popToRootViewControllerAnimated(_ animated: Bool) -> [UIViewController]?
但是如果我点击后退按钮怎么用呢?
答案 0 :(得分:4)
正如官方文件"Pushing and popping stack items"
中所述func popToRootViewControllerAnimated(_ animated: Bool) -> [UIViewController]?
弹出除根视图外的堆栈上的所有视图控制器 控制器并更新显示。
您可以简单地使用它:
@IBAction func backToRootButton(sender: UIButton) {
navigationController?.popToRootViewControllerAnimated(true)
}
此图片可以解释何时需要转到rootViewController:
使用以下代码,您可以自定义navigationController 后退按钮:
override func viewDidLoad {
super.viewDidLoad()
self.navigationItem.hidesBackButton = true
let newBackButton = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.Bordered, target: self, action: "back:")
self.navigationItem.leftBarButtonItem = newBackButton;
}
func back(sender: UIBarButtonItem) {
// Perform your custom actions
// ...
// Go back to the previous ViewController
//self.navigationController?.popViewControllerAnimated(true)
// ..or go back to the rootViewController
self.navigationController?.popToRootViewControllerAnimated(true)
}
你决定是否需要简单地弹出到上一个viewController或者直接转到root,取决于你的堆栈有多深,或者你是topViewController的人是谁。