码迷,mamicode.com
首页 > 其他好文 > 详细

使用容器控制器控制另外两个控制器的view交换

时间:2014-07-13 23:15:04      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   使用   os   

建三个UIViewController 的子控制器,其中一个为根控制器,另外两个控制器的视图作为切换对象

AppDelegate中代码

//AppDelegate.h中代码
#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (retain, nonatomic) UIWindow *window;

@end
//AppDelegate.m中代码

根视图控制器RootViewController中代码

//RootViewController.h中代码
#import <UIKit/UIKit.h>

@interface RootViewController : UIViewController

@end
//RootViewController.m中代码
#import "RootViewController.h"
#import "BlueViewController.h"
#import "RedViewController.h"
@interface RootViewController ()
{
    BlueViewController *_blueview;
    RedViewController *_redview;
}
@end

@implementation RootViewController
-(void)dealloc
{
    [_blueview release];
    [_redview release];
    [super dealloc];
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}
- (void)change:(UIButton *)button
{
    if (_blueview.view.superview !=nil) {
        [_blueview.view removeFromSuperview];
        [self.view addSubview:_redview.view];
    }else{
        [_redview.view removeFromSuperview];
        [self.view addSubview:_blueview.view];
    }
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    //蓝色视图控制器的创建
    _blueview = [[BlueViewController alloc] init];
    _blueview.view.frame = CGRectMake(0, 0, 320, 440);

    //添加到根控制器
    [self.view addSubview:_blueview.view];
    
    //红色视图控制器创建
    _redview = [[RedViewController alloc] init];
    _redview.view.frame = CGRectMake(0, 0, 320, 440);
//添加到根控制器
    [self.view addSubview:_redview.view];
    
    //在根控制器上创建带触发交换事件的按钮
    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
    button.frame = CGRectMake(100, 440, 120, 40);
    [button setTitle:@"交换" forState:UIControlStateNormal];
    button.backgroundColor = [UIColor blackColor];
    [button addTarget:self action:@selector(change:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
    // Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end

BlueViewController中代码

//BlueViewController.h中代码
#import <UIKit/UIKit.h>

@interface BlueViewController : UIViewController

@end
//BlueViewController.m中代码
#import "BlueViewController.h"

@interface BlueViewController ()

@end

@implementation BlueViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor blueColor];
    // Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end

RedViewController

//RedViewController.h中代码
#import <UIKit/UIKit.h>

@interface RedViewController : UIViewController

@end
//RedViewController.m中代码
#import "RedViewController.h"

@interface RedViewController ()

@end

@implementation RedViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor redColor];
    // Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end

 

使用容器控制器控制另外两个控制器的view交换,布布扣,bubuko.com

使用容器控制器控制另外两个控制器的view交换

标签:des   style   blog   color   使用   os   

原文地址:http://www.cnblogs.com/limicheng/p/3840451.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!