05_视图控制器_1

视图控制器的概念和作用:

视图控制器像一个大管家一样,负责视图的添加,卸载,横竖屏等

每一个界面都由一个视图控制器来管理

UIViewController是所有视图控制器的父类

每一个视图控制器都自带一个UIView

//在没有创建XIB文件的时候,第3行代码并不会被执行。

//因为执行创建myViewController1的view的前提条件是:1.当前视图控制器的根视图是nil 2.调用了根视图的选择器getter方法

1     myViewController1 *mycontr1 = [[myViewController1 alloc]init];
2
3     mycontr1.view.backgroundColor = [UIColor yellowColor];
4
5     self.window.rootViewController = mycontr1;
6
7     mycontr1.view.backgroundColor = [UIColor greenColor];

模态

模态视图的使用场景:

1.收集用户输入信息

2.临时呈现一些内容,例如广告等

3.临时改变工作模式

4.呈现一个新的view层级

注意:这几种情况都会暂时中断程序正常的执行流程

具体实现:

在第一个.m文件中创建button方法:

1 - (IBAction)buttonInAction:(UIButton *)sender {
2     myViewController2 *myContr2 = [[myViewController2 alloc]init];
3
4     [self presentViewController:myContr2 animated:YES completion:nil];
5 }

在第二个.m文件中创建button方法:

1 - (IBAction)backAction:(UIButton *)sender {
2     [self dismissViewControllerAnimated:YES completion:nil];
3 }

即实现了简单的一个页面跳转的模态

课堂练习 利用代理创建一个模态视图:

首先应该设定一个协议

@protocol presentDelegate <NSObject>

- (void)transmit:(NSString *)transmit;

@end

然后应该在@interface中声明一个代理对象

@property (nonatomic,weak)id<presentDelegate> delegate;

接着在第二个.m文件调用协议方法,将数值传入到第一个视图中

- (void)buttonAction{

    [self.delegate transmit:_text.text];

    [self dismissViewControllerAnimated:YES completion:nil];
}

在第一个视图中签订一下协议

1 @interface ViewController1 : UIViewController <presentDelegate>

在第一个视图中调用button方法的时候设定代理

1 - (void)buttonAction{
2
3     ViewController2 *mycontr2 = [[ViewController2 alloc]init];
4     mycontr2.delegate = self;
5
6     [self presentViewController:mycontr2 animated:YES completion:nil];
7
8 }

最后实现一下协议方法,将内容接收到,便可以显示到第一个视图中的label中了

1 - (void)transmit:(NSString *)transmit{
2     _label1.text = transmit;
3
4 }

@end

时间: 2024-09-30 18:39:12

05_视图控制器_1的相关文章

05_视图控制器_2 UIViewController的生命周期

在视图控制器从生到死的过程中,会经历以下进程 1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 // Do any additional setup after loading the view from its nib. 4 } 5 6 - (void)viewWillAppear:(BOOL)animated{ 7 [super viewWillAppear:animated]; 8 NSLog(@"视图将要显示"); 9 } 10

【IOS开发—视图控制器】

一.UIViewController 视图控制器是UIViewController类或者其子类对象,每个视图控制器都负责管理一个视图层次结构.在UIViewController中有一个重要的UIView属性, 这个view就是这个视图层的根视图,当程序将view作为子视图加入窗口时,也会加入UIViewController对象所管理的整个视图层次结构. 视图控制器只有在将某个视图显示在屏幕上时,相应的视图控制器才会创建其视图,这种延迟加载视图的做法能提高内存的使用效率.视图控制器创建视图的方式有

iOS之浅谈纯代码控制UIViewController视图控制器跳转界面的几种方法

一.最普通的视图控制器UIViewContoller 一个普通的视图控制器一般只有模态跳转的功能(ipad我不了解除外,这里只说iPhone),这个方法是所有视图控制器对象都可以用的,而实现这种功能,有两种方法. 1.通过方法 - (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion跳转 相

iOS基础之UITabBarController(标签视图控制器)

UITabBarController是可以帮我们添加.管理许多的标签项,使我们的程序包含不同的操作模式,由于管理UITabBar可能比较麻烦,系统帮我们对其进行了封装,产生了简单好用的UITabBarController--标签视图控制器. 代码演示: #import "AppDelegate.h" #import "FirstViewController.h" #import "SecondViewController.h" #import &

集合视图控制器(CollectionViewController) 、 标签控制器(TabBarController) 、 高级控件介绍

  1 创建集合视图,设置相关属性以满足要求 1.1 问题 集合视图控制器UIConllectionViewController是一个展示大量数据的控制器,系统默认管理着一个集合视图UICollectionView,功能几乎和UITableViewController差不多,能够以多行多列的形式展示数据. 集合视图UICollectionView继承至UIScrollView,也同tableView一样有两个协议,分别是UICollectionViewDataSource数据源协议和UIColl

IOS-多视图控制器之间的切换

1. 创建个单视图应用程序 2. 在向Main.storyboard中拖一个ViewController控制器 3. 在第一个viewController中添加一个按钮 4. 按着control键,推动到第二个视图上,选择Model 5.运行应用程序,点击按钮,则第二个视图控制器就会出来了 6. 在第二个视图控制器中添加一个按钮,用于回到第一个视图控制器 7. 首先为第二个视图控制器添加GameViewController类,用于控制第二个视图控制器 8. 打开辅助编辑器,拖动用于回到主页的按钮

UI 07 _ 导航视图控制器 与 属性传值

首先, 先创建三个VC. 完成点击按钮, 进入下一页, 并能够返回. 要先把导航视图控制器创建出来. 在AppDelegate.m 文件中代码如下: #import "AppDelegate.h" #import "MainViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (void)dealloc{ [_window release]; [super dea

UI 03 UIViewController (视图控制器)的7个方法与视图的跳转

新建一个继承于UIViewController 的类 在AppDelegate.m 中写如下代码. //1.创建一个rootViewController对象 RootViewController *rootVC = [[RootViewController alloc]init]; //2.给window设置根视图控制器 self.window.rootViewController = rootVC; [rootVC release]; 在RootViewController.m文件中的代码如下

UI开发----自定义视图和视图控制器(Controller)

//  Created By 郭仔  2015年04月14日21:34:01 一.自定义视图: 根据需求的不同,?自定义视图继承的类也有所不同.?一般?自定义的 视图会继承于UIView.以下是?自定义视图的要点: 1.创建?一个UIView?子类 2.在类的初始化?方法中添加?子视图 3.类的.h?文件提供?一些接?口(?方法),便于外界操作?子视图 ================== 这里以label-textfield自定义视图为例: 把Label和Textfield封装到LTView中