Фреймворк 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)