Фреймворк SwipeNavigationController от GitHub, как реализовать

Поэтому мой вопрос сегодня заключается в том, как я могу добавить представление, похожее на Snapchat, где вы используете жесты, чтобы перемещаться к другим представлениям: слева, сверху, снизу, справа. Я пытаюсь использовать этот фреймворк, но я не уверен, как на самом деле реализовать его, поскольку они не предоставили пример проекта. Макет моего приложения таков: у меня есть контроллер вида регистрации / входа в систему, оттуда я хочу, чтобы он перешел в другой вид (синий), и это вид, в котором я хочу использовать различные жесты, упомянутые выше. `import UIKit import 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
   }
}'

Я также не использую раскадровки для этого проекта.

1 ответ

Решение

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 как центр, а затем толкает его на ваш стек контроллера представления. Если у вас нет UINavigationController в контроллере представления, который отображается перед SwipeNavigationController, вы можете представить его модально, заменив последнюю строку на следующую:

present(swipeNavigationController, animated: true, completion: nil)
Другие вопросы по тегам