利用SegmentedControl切换控制器的view

#import "ViewController.h"

#import "OneViewController.h"

#import "TwoViewController.h"

 

@interface ViewController ()

@property (nonatomic, strong) UISegmentedControl *segmentedControl;

@property (nonatomic, strong) UIViewController *currentViewController;

@end

 @implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

  self.segmentedControl = [[UISegmentedControl alloc] initWithItems:@[@"第一个视图",@"第二视图"]];

    self.segmentedControl.frame = CGRectMake(0, 0, 150, 30);

    self.navigationItem.titleView = self.segmentedControl;

    [self.segmentedControl addTarget:self action:@selector(segmentedControl:) forControlEvents:UIControlEventValueChanged];

    _segmentedControl.selectedSegmentIndex = 0;

    

    OneViewController *oneVC = [[OneViewController alloc] init];

    [self addChildViewController:oneVC];

    

    TwoViewController *twoVC = [[TwoViewController alloc] init];

    [self addChildViewController:twoVC];

    

    [self setSelectController:0];

}

 

- (void)segmentedControl:(UISegmentedControl*)scc{

    

    [self setSelectController:scc.selectedSegmentIndex];

}

 

- (void)setSelectController:(NSInteger)index{

    UIViewController *vc = [self.childViewControllers objectAtIndex:index];

    if (vc == self.currentViewController) {

        return;

    }

    [self.currentViewController.view removeFromSuperview];

    vc.view.frame = CGRectMake(0, 0, 320, 200);

    [self.view addSubview:vc.view];

     _currentViewController = vc;

}

原文地址:https://www.cnblogs.com/qiumuan/p/5158225.html