UIView是iOS开发中所有视图的基类, 表示屏幕上的一块矩形区域, 同时可以处理该区域的绘制和触摸事件. UIViewController是视图控制器的基类, 用来处理屏幕之间的切换等操作, 提供视图管理模型. 一个UIViewController管理一个层级的UIView. 而RootViewController就是iOS应用启动时被载入的第一个视图控制器(可在main.storyboard中指定), 展示APP启动成功后的第一个界面. 因此, iOS中在各个UIViewController之间的切换操作显得尤为重要, 其直接决定了应用各个界面之间的切换效果. 主要的跳转方式有以下几种:
UITabBarController
UITabBarController主要用于平级View的跳转, 应用案例如微信界面下方的四个Tab。可选中一个UIViewController, 在Xcode->Editor->Embed In-> Tab Bar Controller将其加入到一个Tab bar中. 也可以在storyboard中直接从UITabBarController中连线至一个View, 选择Relationship Segue的view controllers即可.
property
tabbar里边包含的每一个viewController都对应一个tabbarItem, 位置都是均分的, 最多显示4个tab, 再多了就会折叠起来. 通过代码来设置tabbar的时候, 可以使用setViewControllers来添加指定的子ViewController为其item.
tabbarItem有title, image, selectedImage, badgeValue属性, badgeValue是该item右上角的提醒数字. 而selectedIndex和selectedViewController则定位到当前选取的tabbarItem.
除此之外, 还有viewControllers, selectedViewController, selectedIndex等属性, 含义就不罗嗦了.
UITabBarControllerDelegate
该协议用于在选取某一个tabbarItem的时候, 执行一些额外的操作, 监控tabbar的改变, 也可以阻止某一个tabbarItem被选取.
UINavigationController
堆栈式View管理
UINavigationController是IOS开发中常用的用于视图切换的控制器, 提供堆栈式的View管理方式, RootViewController在stack的最底层. 提供了诸多方法用于进行view之间的切换及管理等, 如
pushViewController与popViewController等. 详