Основа SwipeNavigationController от GitHub, как реализовать - PullRequest
0 голосов
/ 05 июля 2018

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

0 голосов
/ 05 июля 2018

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)
...