2017-10-09 54 views
0

如何在不使用Storyboard的情况下关闭任何View Controller?我必须使用UINavigationController来实现这个吗?如果不是如何呢?向右滑动关闭ViewControlelr而不使用Storyboard Swift

+0

您是否尝试过使用UISwipeGestureRecognizer?当你设置它,你可以这样做 '让swipeGesture = UISwipeGestureRecognizer(目标:自我,动作:#selector(解雇)) swipeGesture.direction = .right ' –

+0

有没有像解雇任何视图控制器。将VC离开屏幕的方式与您使用的容器视图控制器有关。解散是为模态演示,弹出是为导航控制器等一切取决于您的布局。 –

+0

@spenseram我实际上结束了使用uinavigation控制器,没有故事板当然 – Mahan

回答

0

驳回视图控制器的方法是调用所述呈现视图控制器上的驳回方法。如果您通过致电self.present(_:animated:)向父母介绍了您的子女管理员,则可致电self.dismiss(animated:)。如果您使用了导航控制器并调用了navigationController.push(_:animated:),那么您需要告诉导航控制器不要使用navigationController.popViewController(animated:) 方法名称可能不准确,但您应该能够使用自动完成功能来确定它。

+0

谢谢我已经使用这种方式,它处理拖动但当它弹出或者它不仅仅可见时,视图是否真的消失了? – Mahan

+0

很高兴听到这是你的工作!当你弹出视图控制器时,它确实消失了。除非你有一个保留周期。您可以使用可视化内存调试器在xcode中分析您的应用程序,并搜索您的视图控制器的类名称。 –

+0

是的,但当我弹出一个视图控制器,并推另一我仍然可以滑回到前一个,我不想禁用此刷卡功能,但亩点是vc实际上并没有 – Mahan

0

如果你想刷卡不是解雇,但我认为你想要它嵌入UINavigationController里面的UIViewController

例如:

if let vc = UIStoryboard(name: "YourStoryboard", bundle: nil).instantiateViewController(withIdentifier: "YourViewController") as? YourViewController { 
    let navigation = UINavigationController(rootViewController: vc) 
    navigationController?.pushViewController(vc, animated: true) 
}