Как переместить secondViewController из верхней части firstViewController с помощью panGesture? - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь переместить secondViewController с вершины firstViewController с помощью panGesture, но у меня возникла проблема ...

когда я начинаю перемещать второй ViewController, сразу за контроллером появляется черный экран, а не firstViewController (как я и ожидал), и я не знаю, как решить эту проблему ...

вот код, иллюстрирующий мою проблему ...

firstVC здесь ..

import UIKit

class mainController: UIViewController {

    let tapGestureRecognizer = UITapGestureRecognizer()
    let secondVC = SecondViewController()

    override func viewDidLoad() {
        super.viewDidLoad()

        tapGestureRecognizer.addTarget(self, action: #selector(goToSecondVC))

        view.backgroundColor = UIColor.red
        view.addGestureRecognizer(tapGestureRecognizer)
    }

    @objc func goToSecondVC(){
        present(secondVC, animated: true, completion: nil)
    }        
}

и второй ВК здесь ..

import UIKit

class SecondViewController: UIViewController {

    let panGesture = UIPanGestureRecognizer()

    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = UIColor.green

        panGesture.addTarget(self, action: #selector(moveView))

        view.addGestureRecognizer(panGesture)
    }

    @objc func moveView(pan: UIPanGestureRecognizer){
        let translation = pan.translation(in: view)

        if pan.state == .began{
            print("began")

        } else if pan.state == .changed {

            view.frame.origin.x += translation.x

            pan.setTranslation(CGPoint.zero, in: view)
        } else if pan.state == .ended{

            print("ended")                
        }
    }
}

почему за вторым контроллером представления появляется черный экран после второго secondViewController?

1 Ответ

0 голосов
/ 03 сентября 2018

Вам просто нужно правильно установить SecondViewController modalPresentationStyle ...

@objc func goToSecondVC(){
    secondVC.modalPresentationStyle = .overCurrentContext
    present(secondVC, animated: true, completion: nil)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...