在iOS中视图切换最简单一个估计就是模式视图了,下面简单演示一下模式视图:
1.新建一个空的工程,新建一个MainViewController类和一个SubViewController类
2.在AppDelegate.m中:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
MainViewController *mvc = [[MainViewController alloc] init];
self.window.rootViewController = mvc;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
3.在MainViewController.m中
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor yellowColor];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(10, 10, 300, 40);
[button setTitle:@"切换视图" forState:UIControlStateNormal];
[button addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
- (void)btnClick
{
SubViewController *svc = [[SubViewController alloc] init];
svc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;//动画效果
[self presentViewController:svc animated:YES completion:^{}];//切换到下一个视图}
4.在SubViewController.m中
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor redColor];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(10, 10, 300, 40);
[button setTitle:@"返回主视图" forState:UIControlStateNormal];
[button addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
- (void)btnClick
{
[self dismissViewControllerAnimated:YES completion:^{}];//返回上一个视图
}