SwipeNavigationController

SwipeNavigationController

所以今天我的问题是我如何添加类似于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
   }
}'


我也没有在该项目中使用情节提要。

最佳答案

SwipeNavigationControllerUIViewController,可以被压入堆栈或与其他任何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)

09-25 18:45