Swift - Navigation Controller

Swift - Navigation Controller 首页 / iOS入门教程 / Swift - Navigation Controller

在本教程中,无涯教程将讨论更好的导航方法。可以将Navigation Controller定义为容器视图控制器,该容器维护用于堆叠层次结构内容的View Controller堆栈。它是UINavigationController类的实例,该类继承了UIViewController。

class UINavigationController : UIViewController

导航控制器在导航界面中管理一个或多个子视图控制器。几乎每个iOS应用程序都使用了导航控制器。即使将一个或多个子视图控制器管理到导航堆栈中,在一个实例上也只有一个视图控制器出现在屏幕上。在视图控制器中选择一个项目会在屏幕上推送一个新的视图控制器。此过程具有动画效果,因此隐藏了先前的视图控制器。让无涯教程看看iOS上的设置应用中使用的导航界面。

Navigation ControllerNavigation Controller

导航控制器中嵌入的所有视图控制器都包含一个导航栏,其中包含视图控制器的标题和后退按钮。通过单击“back”按钮,将顶视图控制器从导航堆栈中删除。但是,没有为堆栈的根视图提供后退按钮。

导航控制器在有序数组中管理视图控制器,其中第一项被视为根视图控制器,并且被视为导航堆栈的底部。数组中的最后一项是最上面的视图控制器,当前正在显示。无涯教程可以使用UINavigationController类的方法将View Controller推入或弹出到堆栈中

下图显示了由导航控制器管理的对象。

Navigation Controller

导航控制器采用导航堆栈中最顶层视图控制器的视图。无涯教程可以使用导航控制器的view属性访问此视图。但是,该视图包含导航栏,内容视图和可选的工具栏。导航栏和工具栏的内容会更改,而视图不会更改。

在此示例中,无涯教程将看到如何将视图控制器嵌入导航控制器,以及如何将视图控制器推入导航堆栈。

链接:https://www.learnfk.comhttps://www.learnfk.com/ios/ios-navigation-controller.html

来源:LearnFk无涯教程网

Navigation Controller

要将此视图控制器嵌入导航堆栈中,请转到“Editor”->“Embed”,然后选择“Navigation Controller”,如下图所示。

Navigation Controller

这将创建一个导航控制器,其顶部具有导航栏。在这里,无涯教程必须注意到导航控制器是初始视图控制器。

Navigation Controller

在这里,无涯教程定义了View Controller的导航栏标题,让无涯教程在应用程序中添加另一个视图控制器,以便无涯教程可以在导航堆栈中推送该视图控制器。将StoryboardID定义为此ViewController的SecondVc。

Navigation Controller

在这里,无涯教程通过推送了第二个视图控制器,添加了一个按钮(显示)。

Navigation Controller

ViewController.swift

import UIKit


class ViewController: UIViewController {


    let sb = UIStoryboard(name: "Main", bundle: nil)
    
    override func viewDidLoad() {
        super.viewDidLoad()
       //Do any additional setup after loading the view.
    }


    @IBAction func clickedButtonShow(_ sender: Any) {
        let secondVC = sb.instantiateViewController(identifier: "SecondVC")
        self.navigationController?.pushViewController(secondVC, animated: true)
    }
    
}

输出

Navigation Controller

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

左耳听风 -〔陈皓〕

Swift核心技术与实战 -〔张杰〕

技术管理案例课 -〔许健〕

动态规划面试宝典 -〔卢誉声〕

小马哥讲Spring AOP编程思想 -〔小马哥〕

成为AI产品经理 -〔刘海丰〕

恋爱必修课 -〔李一帆〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

大厂设计进阶实战课 -〔小乔〕

好记忆不如烂笔头。留下您的足迹吧 :)