У меня в моем приложении Swift 3 есть HomeViewController, содержащий UITableView
. Когда нажимается ячейка таблицы, я показываю detailViewController
. Я показываю его как ребенка, используя addChildViewController(vc)
. Я хочу реализовать обратный жест, чтобы вернуться к homeViewController. Я хочу получить тот же результат, что и режим обратной связи в приложении Mail по умолчанию для устройств (режим возврата для возврата в дом почты, когда я был в папке «Входящие»). Другими словами, жест позволяет пользователю перетащить представление слева направо, а затем продолжить движение слева направо до отображения домашнего вида или перетащить вид справа налево, чтобы сохранить подробный вид на весь экран , Я попытался сделать это, используя UIPanGestureRecognizer
, но мой взгляд идет влево и вправо, а иногда и показывает домашний вид с правой стороны. Итак, вкратце, результат, который я хочу, такой же, как функциональность обратного жеста приложения Mail.Swift 3: Жест назад
Это мой код:
var rightSwipe: UIPanGestureRecognizer = UIPanGestureRecognizer()
self.rightSwipe = UIPanGestureRecognizer(target: self, action: #selector(self.handleSwipes(_:)))
self.view.addGestureRecognizer(rightSwipe)
func handleSwipes(_ sender: UIPanGestureRecognizer){
if self.rightSwipe.state == .began || self.rightSwipe.state == .changed {
let translation = rightSwipe.translation(in: self.view)
// note: 'view' is optional and need to be unwrapped
//print("translation is : \(translation)")
if(translation.x > 0 && translation.y == 0.0){
self.rightSwipe.view!.center = CGPoint(x: self.rightSwipe.view!.center.x + translation.x, y: self.rightSwipe.view!.center.y + translation.y)
rightSwipe.setTranslation(CGPoint.zero, in: self.view)
}
}
}
Если вы хотите это поведение, просто нажмите на свой ViewController в стеке навигации. –
Можете ли вы подробнее объяснить? –
Я тестировал 'self.navigationController.pushViewController (vc, animated: true)' вместо addChild, но когда я нажимаю на ячейку, detailViewController не появляется. Это потому, что мой HomeViewController является UIViewController? –