【发布时间】:2017-03-15 08:42:40
【问题描述】:
我正在通过导航控制器以编程方式添加视图控制器,因为我需要在呈现控制器时访问导航栏。
我目前正在通过以下方法执行此操作,但是当用户点击关闭按钮时,我需要能够删除对视图控制器的引用。
let settingsController = storyboard?.instantiateViewController(withIdentifier: "SettingsController") as! SettingsController
settingsController.view.alpha = 0
settingsController.view.transform = CGAffineTransform(translationX: 0, y: self.view.frame.height)
self.view.addSubview(settingsController.view)
UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: {
print(self.view.frame.height)
settingsController.view.transform = CGAffineTransform(translationX: 0, y: self.view.frame.height - 142)
settingsController.view.alpha = 1
}, completion: nil)
由于当前的 self.dismiss 或 self.popViewController 不起作用,我有什么办法可以做到这一点?
谢谢
更新
我尝试使用标准执行 segue(如下)通过呈现模态选项来实现此解决方案,因为我需要保持导航栏处于活动状态。设置控制器高度小于视图框架。这不起作用,所以我正在尝试上述方法。
self.definesPresentationContext = true
self.modalPresentationStyle = .overCurrentContext
self.modalTransitionStyle = .coverVertical
self.performSegue(withIdentifier: "SettingsSegue", sender: nil)
当我调用设置控制器并关闭另一个设置控制器时,会添加多个设置控制器。这是我的问题。
【问题讨论】:
-
嗨,你能粘贴截图吗?
-
不确定屏幕截图在这种情况下会提供什么,因为它与代码相关。
-
我不明白你到底需要什么。
-
更新了问题:)
-
所以你想关闭设置控制器?