📜  navigationcontroller.pushviewcontroller - Swift (1)

📅  最后修改于: 2023-12-03 15:33:05.550000             🧑  作者: Mango

导航控制器(Navigation Controller)和pushViewController方法

简介

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

参考资料
  1. UINavigationController-class
  2. pushViewController(_:animated:)