利用SegmentedControl切换控制器的view

时间:2023-03-08 20:15:20

#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;

}