//加入子控制器
[self addChildViewController:XXXViewCtrl];
//将一个UIView显示在最前面只需要调用其父视图的方法:
bringSubviewToFront()
//将一个UIView层推送到背后只需要调用其父视图的方法:
sendSubviewToBack()
//用第二层子视图 换 第一层子视图的位置 self.view是第0层
[self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:2];
切换按钮
方法1:
- (IBAction)changeAction:(id)sender {
UIButton *button = (UIButton *)sender;
// 点击处于当前页面的按钮,直接跳出
if ((self.currentViewCtrl == self.remoteH5ViewCtrl && button.tag == 101)||(self.currentViewCtrl == self.aboutCs2ViewCtrl && button.tag == 102)) {
return;
}else{
switch (button.tag) {
case 101:
[self replaceController:self.currentViewCtrl newController:self.remoteH5ViewCtrl];
self.currentViewCtrl = _remoteH5ViewCtrl;
break;
case 102:
[self replaceController:self.currentViewCtrl newController:self.aboutCs2ViewCtrl];
self.currentViewCtrl = _aboutCs2ViewCtrl;
break;
default:
break;
}
}
}
// 切换各个标签内容
- (void)replaceController:(UIViewController *)oldController newController:(UIViewController *)newController
{
/** * transitionFromViewController:toViewController:duration:options:animations:completion: * fromViewController 当前显示在父视图控制器中的子视图控制器 * toViewController 将要显示的姿势图控制器 * duration 动画时间(这个属性,old friend 了 O(∩_∩)O) * options 动画效果(渐变,从下往上等等,具体查看API) * animations 转换过程中得动画 * completion 转换完成 */
[self addChildViewController:newController];
[self transitionFromViewController:oldController toViewController:newController duration:0.3 options:UIViewAnimationOptionTransitionCrossDissolve animations:nil completion:^(BOOL finished) {
if (finished) {
[newController didMoveToParentViewController:self];
[oldController willMoveToParentViewController:nil];
[oldController removeFromParentViewController];
self.currentViewCtrl = newController;
}else{
self.currentViewCtrl = oldController;
}
}];
}
方法2:
- (IBAction)changeAction:(id)sender {
UIButton *button = (UIButton *)sender;
NSInteger index = button.tag - 100;
if (index != _ViewNum) {
if (_ViewNum == 1) {
[_remoteH5View removeFromSuperview]; //移除登录状态的view
_remoteH5View = nil;
}
if (_ViewNum == 2) {
[_aboutCs2View removeFromSuperview]; //移除登录状态的view
_aboutCs2View = nil;
}
if (index == 1) {
_remoteH5View = [RemoteH5View viewFromNIB];
_remoteH5View.frame = CGRectMake(0, 0, _NetworkView.frame.size.width, _NetworkView.frame.size.height);
[_NetworkView addSubview:_remoteH5View];
_ViewNum = 1;
}
else {
_aboutCs2View = [AboutCs2View viewFromNIB];
_aboutCs2View.frame = CGRectMake(0, 0, _NetworkView.frame.size.width, _NetworkView.frame.size.height);
[_NetworkView addSubview:_aboutCs2View];
_ViewNum = 2;
}
}
}
方法3:
UIButton *button = (UIButton *)sender;
NSInteger index = button.tag - 100;
if (index == 0) {
self.LocalSDKbtn.selected = YES;
self.RemoteH5btn.selected = NO;
self.AboutCs2btn.selected = NO;
[_NetworkView bringSubviewToFront:LocalSDKViewCtrl.view];
}else if (index == 1) {
self.LocalSDKbtn.selected = NO;
self.RemoteH5btn.selected = YES;
self.AboutCs2btn.selected = NO;
[_NetworkView bringSubviewToFront:RemoteH5ViewCtrl.view];
}else {
self.LocalSDKbtn.selected = NO;
self.RemoteH5btn.selected = NO;
self.AboutCs2btn.selected = YES;
[_NetworkView bringSubviewToFront:AboutCs2ViewCtrl.view];
}