Ios 在菜单栏中转换到视图控制器
我在Gary Tokman的菜单栏(由3部分组成的系列)上完成了本教程的学习,他创建了一个菜单栏,打开一个视图,该视图根据他按下的菜单栏中的项目更改颜色Ios 在菜单栏中转换到视图控制器,ios,swift,menu,menuitem,menubar,Ios,Swift,Menu,Menuitem,Menubar,我在Gary Tokman的菜单栏(由3部分组成的系列)上完成了本教程的学习,他创建了一个菜单栏,打开一个视图,该视图根据他按下的菜单栏中的项目更改颜色但是,因为我实际上想打开视图控制器,所以我在查看注释,看看是否有人有相同的想法,就像他们在顶部注释中所做的那样然而,用户正在做的是,每次选择菜单项时,它都会在当前视图的顶部放置一个子视图使用菜单栏几次后,您可以看到视图彼此堆叠,内存正在积累选择新菜单项或其他方法时,是否有可行的方法删除每个视图另一个附带问题是:当菜单栏打开时,是否有办法触摸屏幕的
但是,因为我实际上想打开视图控制器,所以我在查看注释,看看是否有人有相同的想法,就像他们在顶部注释中所做的那样
然而,用户正在做的是,每次选择菜单项时,它都会在当前视图的顶部放置一个子视图
使用菜单栏几次后,您可以看到视图彼此堆叠,内存正在积累
选择新菜单项或其他方法时,是否有可行的方法删除每个视图
另一个附带问题是:当菜单栏打开时,是否有办法触摸屏幕的黑色部分并将其关闭,而无需选择菜单项。提前谢谢 对于更改视图控制器,容器视图控制器的实现似乎是最好的解决方案。关于你的问题: 选择新菜单项或其他方法时,是否有可行的方法删除每个视图。 是的,它看起来是这样的(例如在HomeViewController中): 在添加新视图之前,请调用此方法
func clearSubviews() {
for v in self.view.subviews {
v.removeFromSuperview()
}
}
对于,当菜单栏打开时,是否有办法触摸屏幕的黑色部分并将其关闭,而无需选择菜单项。
只需创建一个向后转换的方法-基本上类似于animateTransition(…)
,但除了帧之外不改变任何内容。然后创建手势识别器并将其添加到dimmingView,如下所示:
var recognizer = UITapGestureRecognizer.init(target: self, action: #selector(transitionBack))
dimmingView.addGestureRecognizer(recognizer)
当dimmingView alpha设置为零时,不应调用手势识别器,因此在隐藏菜单时不会调用它
当然,transitionBack
必须具有@objc
adnotation才能在此识别器中执行操作
祝你好运 你基本上是在尝试实现一个。在评论中已经给出了一些解决方案,你是否使用了这些或其他东西,请描述一下,你可以发布一些实际的代码吗?