这个
SwipeNavigationController
是一个
UIViewController
可以被推到一个堆栈上,也可以像其他任何堆栈一样显示
uiview控制器
.无论你在哪里创作和展示
BlueViewController
,而是应该创建
开关控制器
作为包含
蓝视控制器
以及所有的方向视图控制器。
蓝视控制器
所有其他方向都不应该知道
SwipeViewController
是的。
蓝视控制器
其他方向都不应该互相了解。这个
开关控制器
是顶层视图控制器,与方向关联的所有视图控制器都是其子视图控制器。我假设你的流程中有一个导航控制器,可以推动
开关控制器
是的。在这种情况下,无论你想用什么方法触发推送,你都会有这样的结果。我叫它
nextTapped
,但我相信你的代码会有所不同:
func nextTapped() {
let swipeNavigationController = SwipeNavigationController(centerViewController: BlueViewController())
swipeNavigationController.topViewController = PinkViewController()
swipeNavigationController.bottomViewController = PurpleViewController()
swipeNavigationController.leftViewController = GreenViewController()
swipeNavigationController.rightViewController = OrangeViewController()
navigationController?.pushViewController(swipeNavigationController, animated: true)
}
然后从
viewDidLoad
在里面
蓝视控制器
除了设置背景色的线。这将创建
开关控制器
使用所有的方向视图控制器,保持
蓝视控制器
作为中心,然后将其推到视图控制器堆栈上。如果你没有
UINavigationController
在swipenavigationcontroller之前显示的视图控制器中,您可以通过将最后一行替换为以下内容以进行模式显示:
present(swipeNavigationController, animated: true, completion: nil)