iOS阶段学习第30天笔记(UIViewController—UINavigationController)

iOS学习(UI)知识点整理

一、UIViewController的介绍

1)概念:UIViewController 即视图控制器,用来管理和控制页面跳转的一个类 ,iOS里面采用了MVC的体系结构,在UI方便的

具体表现为View加ViewController。所以UIViewController是iOS应用当中非常常用而且很重要的一个类;一般使用都是自己写

一个类继承UIViewController这个类。在UIViewController里面有一个很重要的属性那就是View,也就 是这个Controller对应的

View,MVC里面的V和C。可以通过覆盖其中的loadView方法来手动创建View然后把它设置到 Controller的属性中。

2)新建一个类FirstViewController 基础ViewController 将这个类交给window的主视图控制器管理 例如:

1 FirstViewController *firstVC = [[FirstViewController alloc] init];
2 self.window.rootViewController = firstVC;

3)页面跳转方法 实例代码

方法一  :

 1 //初始化第二个页面
 2 _secondVC = [[SecondViewController alloc] init];
 3 //从第一个页面跳转到第二个页面
 4 [self presentViewController:_secondVC animated:YES completion:^{
 5
 6 }];
 7 //注意:此处的跳转页面对象一般定义成全局的 否则会出错
 8
 9 //对应的跳转返回方法:
10 //回到上一页面  注意:此方法写在第二个页面的.m文件中
11 [self dismissViewControllerAnimated:YES completion:^{
12
13 }];

方法二 :

1 [self.view addSubview:_secondVC.view];
2
3 //对应的跳转返回方法:
4 //回到上一页面  注意:此方法写在第二个页面的.m文件中
5 [self.view removeFromSuperview];

4)UIViewContrller初始化的时候backgroundColor默认是nil,并不是clearColor,所以我们在初始化视图控制器时要给视图控制器设置

一个不为clearColor的颜色  例如:

1  self.view.backgroundColor = [UIColor whiteColor];

二、UINavigationController 的介绍

1)概念:UINavigationController 即导航控制器是一个用于控制视图页面切换的一个类

2)UINavigationController  初始化实例代码

1 //初始化一个视图控制器
2 FirstViewController *firstVC = [[FirstViewController alloc] init];
3
4 //初始化一个导航控制器
5 //导航控制器中自身有个栈容器,初始化的时候一定要设置一个rootViewController座位导航控制器的基栈
6 //导航控制器的初始化一定需要一个根视图控制器
7 UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:firstVC];
8 //设置window的rootVC为我们初始化的导航控制器实例
9 self.window.rootViewController = nav;

3)pushViewController 实现页面切换 例如:

1 //初始化SecondViewController
2 SecondViewController *secondVC = [[SecondViewController alloc] init];
3
4 //从页面1 跳转到页面2
5 [self.navigationController pushViewController:secondVC animated:YES];

4)popViewControllerAnimated 实现页面返回 例如:

//返回到上一个VC1 [self.navigationController popViewControllerAnimated:YES];
2 // 注意:通过导航控制器push到另一个vc,一定是通过导航控制器pop回上一个页面。
3 //两种跳转方式一定是对应的返回方式

5)popToRootViewControllerAnimated 通过导航控制器,从导航控制器栈容器的第N的VC直接跳转到导航控制器的根视图控制器

例如:

1 [self.navigationController popToRootViewControllerAnimated:YES];

6)viewControllers 获取导航控制器的栈容器中的视图控制器数组 例如:

1 NSArray *vcArr = self.navigationController.viewControllers;
2 //获取第二个视图控制器
3 UIViewController *secondVC = [vcArr objectAtIndex:1];
4
5 [self.navigationController popToViewController:secondVC animated:YES];
时间: 2024-10-13 01:25:23

iOS阶段学习第30天笔记(UIViewController—UINavigationController)的相关文章

IOS阶段学习第三天笔记(运算符)

                                         IOS学习(C语言)知识点整理笔记 1.运算符 一.算术运算符 1)表达式由变量.常量.运算符构成,有确定的类型和值 2)算术运算符包括: +(加),-(减),*(乘),/(除),%(模) 3)算术运算符优先级 括号()> * ,/ ,%  >+,- 4)%表示取余.取模  a%b 表示a除以b取余数 5)整数相除保留两位小数处理方法如: printf(“%.2f”,(float)14/9); 6)自增自减运算符

iOS阶段学习第33天笔记(自定义标签栏(tabBar)介绍)

iOS学习(UI)知识点整理 一.自定义标签栏 1)方法一 单个创建标签栏 1 #import "AppDelegate.h" 2 #import "SecondViewController.h" 3 #import "ViewController.h" 4 #import "ThirdViewController.h" 5 #import "ForthViewController.h" 6 #import

iOS阶段学习第32天笔记(页面传值方法介绍)

iOS学习(UI)知识点整理 一.界面传值方法 1.方法一  Block传值  通过SubView视图的Block向View视图传值改变View视图的背景色 实例代码: 1)SubViewController.h 文件的代码实现 1 #import <UIKit/UIKit.h> 2 @interface SubViewController : UIViewController 3 @property (nonatomic,copy) void(^callback)(UIColor *colo

IOS 阶段学习第24天笔记(Block的介绍)

IOS学习(OC语言)知识点整理 一.Block 的介绍 1)概念: block 是一种数据类型,类似于C语言中没有名字的函数,可以接收参数,也可以返回值与C函数一样被调用 封装一段代码 可以在任何地方调用 block 也可以作为函数参数,以及函数返回值 2)Block 实例代码 1 //定义了一个block类型MyBlock,MyBlock类型的变量只能指向带两个int的参数和返回int的代码块 2 typedef int (^MyBlock)(int,int); 3 //定义一个函数指针 4

IOS 阶段学习第23天笔记(XML数据格式介绍)

IOS学习(OC语言)知识点整理 一.XML数据格式介绍 1)概念:xml是extensible markup language扩展的标记语言,一般用来表示.传输和存储数据 2)xml与json目前使用比较广泛的两种网络传输数据格式 两者分别占比: 1. json:市场上占90%,轻量级的表示数据 2.xml:占10%,表示数据比较复杂 3)XML三种数据解析方法: 1.DOM解析:将整个xml数据加载到内存中,构造一个对象,从根结点开始一级一级的解析提取数据.缺点:如果数据大, 比较占内存,解

IOS 阶段学习第十天笔记(字符串操作)

IOS学习(C语言)知识点整理 一.字符串的操作 1)字符串的存储,字符数组,在堆里面申请内存空间. 实例代码: #include <stdlib.h> #include <string.h> int main(){ char str[100] = "hello world"; char *p = "hello world"; //*p ='H';//常量字符串不可以修改,p指向只读的地址 p = str; *p = 'H'; // prin

iOS阶段学习第34天笔记(UI小组件 UISegment-UISlider-UIStepper-UIProgressView-UITextView介绍)

iOS学习(UI)知识点整理 一.UI小组件 1.UISegmentedControl 分段选择器  实例代码 1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 //分段选择器 4 //在iOS6里,每个段的宽度会根据字数来决定 5 //iOS7以后,每个段的宽度相同,宽度取决于最长的字数 6 self.view.backgroundColor=[UIColor whiteColor]; 7 seg=[[UISegmentedControl all

IOS阶段学习第四天笔记(循环)

    IOS学习(C语言)知识点整理笔记 一.分支结构 1.分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ }  两种 2.单分支 if表达式成立则执行{ }里的语句:双分支 if表达式不成立 则执行else{ }里面的语句 3.字符串的输出系统会从数组地址一直打印到字符 ‘\0’为止,如果没有正确初始化,可能会打印出数组外的信息 4.如果分支结构里面只有一条执行语句可省略外面的大括号{} . 二.开关语句 1.语句结构 :switch (参数) case

iOS阶段学习第27天笔记(UIButton-UIImageView的介绍)

iOS学习(UI)知识点整理 一.关于UIButton的介绍 1)概念:UIButton 是一种常用的控件,通过点击触发相应的功能 2)UIButton 的几种常用的状态        1.UIControlStateNormal  正常状态        2.UIControlStateHighlighted 高亮状态        3.UIControlStateSelected 选中状态  -> 当button的selected设置成yes之后才能触发 3)UIButton常用的几种事件