Swift语言IOS8开发战记8.NavigationController

简介:        在IOS应用中,可以采用结构化程度更高的场景进行布局,其中有两种最流行的应用程序布局方式,分别是使用导航栏控制器和选项卡栏控制器。

       在IOS应用中,可以采用结构化程度更高的场景进行布局,其中有两种最流行的应用程序布局方式,分别是使用导航栏控制器和选项卡栏控制器。导航控制器能够让用户从一个屏幕切换到另一个屏幕,这样可以显示更多细节。选项卡栏控制器常用于开发包含多个屏幕的应用程序,其中每个选项卡都显示一个不同的场景,让用户能够与一组控件交互。

       之前我们已经用了很多次的使用了导航控制器UIViewController,它的主要功能是控制屏幕的切换,提供一个显示用的view界面,同时包含view的加载、卸载事件的重定义功能。在IOS应用中,导航控制器(UINavigatinoController)可以管理一系列显示层次型信息的场景。也就是第一个场景显示关于特定场景的高级视图,第二个场景用于进一步描述,第三个场景再进一步描述,以此类推。通过导航管理器可以管理这种场景间的过渡,它会创建一个视图控制器“栈”,栈底是根视图控制器。当程序需要在多个view之间切换的时候,可以使用UINavigationController。这一话我们要添加一个导航栏,添加导航控制器需要在初始化的时候添加。打开类AppDelegate,会看到一个叫application的方法。看到方法体中的注释如下:

 // Override point for customization after application launch.

在其中添加一个导航,代码如下:
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        
       let  navController = UINavigationController(rootViewController: ViewController())
        self.window?.rootViewController = navController
        self.window?.makeKeyAndVisible() //设置可见
        return true
    }

运行效果如下:


上面的红框区域就是一个导航栏,有一点需要注意,我们在创建NavigationController时的参数为rootViewController:ViewController(),ViewController保留了我们之前设置的tableView的全部设计,笔者之前没注意,在写rootViewController类型的时候写成了UIViewController,结果运行后除了导航栏其他全是黑的,所以大家一定要注意。

导航栏中都是使用导航项(UINavigationItem)实例来填充的,默认情况下场景的导航项包含一个标题和一个back按钮。我们需要在ViewController中定义UINavigationItem的内容,现在我想给我这个View取个名字叫“cgGo”,在ViewController中的viewDidLoad方法中增加如下代码:

        self.navigationItem.title = "cgGo"

运行结果如图:


现在来试一下点击某一行跳转到下一个页面,定义一个控制器,新建文件,类型还是cocoa touch class,命名为DetailViewController。在点击的代理方法中,把之前跳出的ActionSheet的代码注释掉,改成如下代码:

 self.navigationController?.pushViewController(DetailViewController(), animated: true)

运行后点击屏幕划出一个新的界面:


我们看到的这个黑色屏幕就是DetailViewController,在这个类中进行编辑,就可以得到我们想要的结果,这就要求两个页面间要传参数,下一话再来解决这个问题。


目录
相关文章
|
3月前
|
存储 安全 Swift
Swift 语言:什么是 Swift 的泛型(Generics)?
Swift 语言:什么是 Swift 的泛型(Generics)?
35 0
|
3月前
|
Swift iOS开发
Swift 语言: 什么是协议(Protocol)?如何实现和使用协议?
Swift 语言: 什么是协议(Protocol)?如何实现和使用协议?
44 2
|
3月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
91 2
|
2月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
196 2
|
3月前
|
存储 Swift
Swift 语言:什么是值类型和引用类型?Swift 中有哪些值类型和引用类型?
Swift 语言:什么是值类型和引用类型?Swift 中有哪些值类型和引用类型?
38 2
|
3月前
|
存储 Swift
Swift 语言:什么是闭包(Closure)?它们与函数的区别是什么?
Swift 语言:什么是闭包(Closure)?它们与函数的区别是什么?
36 1
|
3月前
|
监控 Swift iOS开发
局域网计算机监控软件中利用Swift构建iOS端的移动监控应用
在局域网计算机监控软件的开发中,构建iOS端的移动监控应用是一项关键任务。本文将介绍如何利用Swift语言实现这一目标,通过多个代码示例展示关键功能的实现。
225 1
|
3月前
|
安全 Swift
Swift 语言:什么是可选类型(Optional)?如何处理可选类型的安全解包?
Swift 语言:什么是可选类型(Optional)?如何处理可选类型的安全解包?
31 1
|
3月前
|
安全 JavaScript 前端开发
IOS开发基础知识:介绍一下 Swift 和 Objective-C,它们之间有什么区别?
IOS开发基础知识:介绍一下 Swift 和 Objective-C,它们之间有什么区别?
67 0
|
4月前
|
JSON IDE Swift
Swift语言的实践编程
Swift语言的实践编程
31 3

相关课程

更多