📅  最后修改于: 2023-12-03 15:33:05.550000             🧑  作者: Mango
UINavigationController
类是iOS中用于管理并提供导航栏的控制器类。它能够让用户在应用程序中通过多层视图控制器来浏览和查看数据。通过UINavigationController
类,我们可以轻易地实现页面之间的导航功能。
pushViewController
方法是UINavigationController
类中的一个方法,用于在堆栈中压入一个新的视图控制器。
首先,在导航控制器中创建一个要压入(Navigate)的新视图控制器:
let newViewController = NewViewController()
接着,使用pushViewController
方法将该新视图控制器压入堆栈中:
navigationController?.pushViewController(newViewController, animated: true)
在这个示例中,navigationController
是一个可选的属性,因此我们使用了可选拆包操作符(?
)来确保如果navigationController
为空时,不会出现运行时错误。
参数newViewController
是要压入堆栈中的新视图控制器。如果animated
参数设置为true
,则视图控制器将以动画的形式从右边推入ViewController堆栈。
以下是一个完整的示例,它演示了如何使用导航控制器和pushViewController
方法在两个视图控制器之间导航。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
// 按钮点击事件
@IBAction func buttonClicked(_ sender: UIButton) {
let newViewController = NewViewController()
navigationController?.pushViewController(newViewController, animated: true)
}
}
class NewViewController: UIViewController {
// 返回上一个视图控制器
@IBAction func backButtonClicked(_ sender: UIButton) {
navigationController?.popViewController(animated: true)
}
}
在上面的示例代码中,我们在ViewController
中添加了一个按钮,在用户点击该按钮时会打开一个新的视图控制器NewViewController
。在NewViewController
中,我们添加了一个按钮,以便用户可以单击按钮返回到ViewController
。