UI_UIViewController视图控制器_推出新视图presentViewController(模态推出)
2014-10-14 19:31
471 查看
控件关键字: presentViewController
本篇主要介绍UIViewController 的架构, 数据处理的逻辑关系. 之后会介绍一种推出新视图的方法,不同于(UINavigation, 视图导航)
下面是一个ViewController.m文件
@implementation MainViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
// 指定初始化方法
// 无论调用系统的哪个初始化方法,都会调用这个初始化方法
NSLog(@"%s", __func__);
}
return self;
}
- (void)loadView
{
// 系统调用这个方法产生一个View, 作为自己自带的视图
[super loadView];
NSLog(@"%s", __func__);
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// 视图将要出现
NSLog(@"%s", __func__);
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
// 视图已经出现
NSLog(@"%s", __func__);
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
// 控制器自带的视图创建完毕就会调用这个方法
// 视图创建的代码写在这个地方
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
// 当App的内存过高, 系统会调用这个方法
// 可以在这个方法中释放掉一些可以重复生成的对象(数据/视图...)
}
推出新视图presentViewController
Xcode工程中, 建立两个UIViewController
![](https://img-blog.csdn.net/20141014194156925?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVhbmNhb19zY290dA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在主视图中加入一个Button, 设置Button一个点击事件, 推出第二视图(SecondViewController)
MainViewController.m 文件中, 导入第二视图的.h 头文件
#import "MainViewController.h"
#import "SecondViewController.h"
创建Button
- (void)viewDidLoad
{
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
button.backgroundColor = [UIColor yellowColor];
button.frame = CGRectMake(20, 20, 280, 50);
[self.view addSubview:button];
[button setTitle:@"消息" forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
}
Button事件
- (void)buttonClicked:(UIButton *)button
{
// 模态推出Model
// 推出一个新的界面(viewController)
// 1.创建新页面
SecondViewController *secondVC = [[SecondViewController alloc] init];
// 设置推出方法(枚举)
[secondVC setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
// 2.推出
// 参数1, 要推出的新视图控制器(viewController)
// 参数2, 是不是带动画效果
[self presentViewController:secondVC animated:YES completion:^{
// 推出新视图之后,要执行的代码
}];
// 3.内存管理
[secondVC release];
}
本篇主要介绍UIViewController 的架构, 数据处理的逻辑关系. 之后会介绍一种推出新视图的方法,不同于(UINavigation, 视图导航)
下面是一个ViewController.m文件
@implementation MainViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
// 指定初始化方法
// 无论调用系统的哪个初始化方法,都会调用这个初始化方法
NSLog(@"%s", __func__);
}
return self;
}
- (void)loadView
{
// 系统调用这个方法产生一个View, 作为自己自带的视图
[super loadView];
NSLog(@"%s", __func__);
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// 视图将要出现
NSLog(@"%s", __func__);
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
// 视图已经出现
NSLog(@"%s", __func__);
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
// 控制器自带的视图创建完毕就会调用这个方法
// 视图创建的代码写在这个地方
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
// 当App的内存过高, 系统会调用这个方法
// 可以在这个方法中释放掉一些可以重复生成的对象(数据/视图...)
}
推出新视图presentViewController
Xcode工程中, 建立两个UIViewController
在主视图中加入一个Button, 设置Button一个点击事件, 推出第二视图(SecondViewController)
MainViewController.m 文件中, 导入第二视图的.h 头文件
#import "MainViewController.h"
#import "SecondViewController.h"
创建Button
- (void)viewDidLoad
{
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
button.backgroundColor = [UIColor yellowColor];
button.frame = CGRectMake(20, 20, 280, 50);
[self.view addSubview:button];
[button setTitle:@"消息" forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
}
Button事件
- (void)buttonClicked:(UIButton *)button
{
// 模态推出Model
// 推出一个新的界面(viewController)
// 1.创建新页面
SecondViewController *secondVC = [[SecondViewController alloc] init];
// 设置推出方法(枚举)
[secondVC setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
// 2.推出
// 参数1, 要推出的新视图控制器(viewController)
// 参数2, 是不是带动画效果
[self presentViewController:secondVC animated:YES completion:^{
// 推出新视图之后,要执行的代码
}];
// 3.内存管理
[secondVC release];
}
相关文章推荐
- IOS UI:弹出视图/弹出模态 presentViewController与presentModalViewController(增加IOS 6.0说明)
- IOS UI:弹出视图/弹出模态 presentViewController与presentModalViewController(增加IOS 6.0说明)
- 因IOS版本导致的模态视图控制器dismissModalViewControllerAnimated调用问题
- 用presentViewController一个背景颜色半透明的模态视图
- 分割视图控制器(UISplitViewController)
- UISplitViewController - iPad分屏视图控制器
- 分割视图控制器(UISplitViewController)
- A 控制器 Push 到 B 控制器 presentViewController(modal模态)到C控制器
- A 控制器 Push 到 B 控制器 presentViewController(modal模态)到C控制器
- 分割视图控制器(UISplitViewController)
- iOS 6编程--分割视图控制器(UISplitViewController)和Master-Detail Application模板
- iOS presentViewController两个视图控制器的时候返回根视图
- UISplitViewController - 分割视图控制器
- A 控制器 Push 到 B 控制器 presentViewController(modal模态)到C控制器
- IOS-44-解决用模态方式presentViewController推出页面时导航栏消失问题
- iOS7新特性 ViewController转场切换(二) 系统视图控制器容器的切换动画---push pop present dismis
- 分割视图控制器(UISplitViewController)
- A 控制器 Push 到 B 控制器 presentViewController(modal模态)到C控制器
- A 控制器 Push 到 B 控制器 presentViewController(modal模态)到C控制器
- UISplitViewController - iPad分屏视图控制器