所以今天我的问题是我如何添加类似于Snapchat的视图,在该视图中您使用手势滑动到其他视图:左,上,下,右。我正在尝试使用此framework,但由于他们还没有提供示例项目,因此我不确定如何真正实现它。我的应用程序的布局是我有一个注册/登录视图控制器,从那里我要它转到另一个视图(蓝色),这就是我想要具有上述不同手势的视图。 `导入UIKit
导入SwipeNavigationController
class BlueViewController: UIViewController {
let orangeVC = OrangeView()
let pinkVC = PinkView()
let greenVC = GreenView()
let purpleVC = PurpleView()
override func viewDidLoad() {
let swipeNavigationController = SwipeNavigationController(centerViewController: self)
swipeNavigationController.topViewController = self.pinkVC
swipeNavigationController.bottomViewController = self.purpleVC
swipeNavigationController.leftViewController = self.greenVC
swipeNavigationController.rightViewController = self.orangeVC
view.backgroundColor = UIColor.facebookBlueColor
}
}'
我也没有在该项目中使用情节提要。
最佳答案
SwipeNavigationController
是UIViewController
,可以被压入堆栈或与其他任何UIViewController
相同地显示。无论在何处创建和显示BlueViewController
,都应将SwipeNavigationController
创建为包含BlueViewController
和所有方向视图控制器的顶级对象。 BlueViewController
和所有其他指示都应该对SwipeViewController
一无所知。 BlueViewController
和所有其他指示都应该对彼此一无所知。 SwipeNavigationController
是顶级视图控制器,与某个方向关联的所有视图控制器均为该视图的子视图控制器。我假设您在流程中某处有一个导航控制器,该导航控制器可以推动SwipeNavigationController
。在这种情况下,无论您要触发推送的哪种方法,都将具有类似的内容。我称它为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
中的BlueViewController
中删除所有设置背景颜色的行。这将使用所有定向视图控制器创建SwipeNavigationController
,并以BlueViewController
为中心,然后将其压入视图控制器堆栈中。如果在SwipeNavigationController之前显示的视图控制器中没有UINavigationController
,则可以通过用以下内容替换最后一行来模态显示它:present(swipeNavigationController, animated: true, completion: nil)