首页 > 移动平台 > 详细

iOS 开发笔记-控制器tab切换view显示

时间:2015-10-11 17:53:15      阅读:309      评论:0      收藏:0      [点我收藏+]

在开发过程中,我们常常会碰到一种情况就是,在一个controller里面,经常要放很多复杂的控制,最常用的就是tar切换。tar切换,原理就是在一个controller里面,显示另一个controller的view。

 

如果发现:控制器的view还在,但是view上面的数据不显示,极大可能是因为:控制器被提前销毁了

  1.  一个控制器的view是可以随意调整尺寸和位置的
  2.  一个控制器的view是可以随意添加到其他view中
  3.  如果将一个控制器的view,添加到其他view中显示,那么要想办法保证控制器不被销毁
  4.  原则:只要view在,view所在的控制器必须得在,这样才能保证view内部的数据和业务逻辑正常

简单例子

//
//  ViewController.m
//  控制器tab切换view显示
//
//  Created by jiangys on 15/10/11.
//  Copyright © 2015年 Jiangys. All rights reserved.
//

#import "ViewController.h"

#import "OneViewController.h"
#import "TwoViewController.h"
#import "ThreeViewController.h"

@interface ViewController ()
- (IBAction)vc1;
- (IBAction)vc2;
- (IBAction)vc3;


/** one */
@property (nonatomic, strong) OneViewController *one;
/** two */
@property (nonatomic, strong) TwoViewController *two;
/** three */
@property (nonatomic, strong) ThreeViewController *three;

@end

@implementation ViewController

- (OneViewController *)one
{
    if (!_one) {
        self.one = [[OneViewController alloc] init];
        self.one.view.frame = CGRectMake(10, 70, 300, 300);
    }
    return _one;
}

- (TwoViewController *)two
{
    if (!_two) {
        self.two = [[TwoViewController alloc] init];
        self.two.view.frame = CGRectMake(10, 70, 300, 300);
    }
    return _two;
}

- (ThreeViewController *)three
{
    if (!_three) {
        self.three = [[ThreeViewController alloc] init];
        self.three.view.frame = CGRectMake(10, 70, 300, 300);
    }
    return _three;
}


- (void)viewDidLoad {
    [super viewDidLoad];
    //    HestViewController *test = [[TestViewController alloc] init];
    //    test.view.frame = CGRectMake(100, 100, 200, 300);
    //    test.view.backgroundColor = [UIColor redColor];
    //    [self.view addSubview:test.view];
    //    self.test = test;
    
    // 如果发现:控制器的view还在,但是view上面的数据不显示,极大可能是因为:控制器被提前销毁了
    
    // 1.一个控制器的view是可以随意调整尺寸和位置的
    // 2.一个控制器的view是可以随意添加到其他view中
    // 3.如果将一个控制器的view,添加到其他view中显示,那么要想办法保证控制器不被销毁
    // 4.原则:只要view在,view所在的控制器必须得在,这样才能保证view内部的数据和业务逻辑正常
}

- (IBAction)vc1 {
    [self.two.view removeFromSuperview];
    [self.three.view removeFromSuperview];
    [self.view addSubview:self.one.view];
}

- (IBAction)vc2 {
    [self.one.view removeFromSuperview];
    [self.three.view removeFromSuperview];
    [self.view addSubview:self.two.view];
}

- (IBAction)vc3 {
    [self.two.view removeFromSuperview];
    [self.one.view removeFromSuperview];
    [self.view addSubview:self.three.view];
}
@end

效果:

技术分享

源码下载:http://pan.baidu.com/s/1gdydQlt

 

iOS 开发笔记-控制器tab切换view显示

原文:http://www.cnblogs.com/jys509/p/4869557.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!