在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:^{}];//返回上一个视图 }