iOS UIView 之间常用视图之间切换方式
在 iOS 开发中,经常遇到两个 View 之间互相切换,列举下各种方式,但是下面每种方式都要自己灵活运用,不一定就是进入下一个、后一个必须用 “一” 里面的方式。
进入下 / 后一个 View
A:insertSubView 系列:(注意,如果你新增视图不够大,则遮不住上一层视图,即前后 2 个视图都存在,当然你可以做透明来查看所有,与二 A 对应)
- addSubview: (常用增加视图在本 View 上面)
- bringSubviewToFront;将新视图放在其他同级视图的 top 位置
- insertSubview:atIndex: 将新视图放在第 index 层,index 是从底层向上数的下标位置
- insertSubview:aboveSubview: 将新视图放在第二个参数 view 的上面
- insertSubview:belowSubview: 将新视图放在第二个参数 view 的下面
- exchangeSubviewAtIndex:withSubviewAtIndex: 改变新视图从第一个位置到第二个位置
B:presentViewController 系列:(常用视图切换,与二 B 对应)
- presentViewController:animated:completion: 弹出,出现一个新视图 可以带动画效果,完成后可以做相应的执行函数经常为 nil
- presentModalViewController:animated: 弹出,出现一个新视图 可以带动画效果
C:UINavigationController 系列:(常用导航栏视图切换,与二 C 对应)
- pushViewController:animated: 推进一个新视图到栈里,出现新视图,可以带动画效果
例 pushViewController:animated:
返回上 / 前一个 View
A:insertSubView 系列:(注意,如果你新增视图不够大,则遮不住上一层视图,即前后 2 个视图都存在,当然你可以做透明来查看所有,与一 A 对应)
- sendSubviewToBack: 将新视图放在其他同级视图的 behind 位置
- removeFromSuperview:将新视图从父视图上移除
B:presentViewController 系列:(与一 B 对应)
- dismissViewControllerAnimated:completion: 退出一个新视图 可以带动画效果,完成后可以做相应的执行函数经常为 nil
- dismissModalViewControllerAnimated: 退出一个新视图 可以带动画效果
C:UINavigationController 系列:(常用导航栏视图切换,与一 C 对应)
- popViewControllerAnimated: 从一个栈中退出视图,返回上一层,可以带动画效果
- popToRootViewControllerAnimated: 从一个栈中退出视图,返回到 navigation 的 RootView,可以带动画效果
- popToViewController:animated: 从一个栈中退出视图,返回到 navigation 中指定的 view,可以带动画效果
基本上上面已经介绍完全部常用视图切换方式:
UITabBarController:(需要先将几种视图在 tabBar 种设置好)
setViewControllers:animated: 设置要出现的视图
selectedViewController 设置要出现的视图
selectedIndex 设置要出现的视图下标