【发布时间】:2018-11-17 19:38:35
【问题描述】:
我创建了自己的 TabView,第一个选项卡始终是 Home 选项卡,其中包含一个 TableView 。其他 3 个选项卡 Search、Menu 和 Inbox 是 subviews 。我可以从
- 首页搜索然后返回首页,它就可以工作了
- 首页到菜单然后回到首页,它也可以工作
- Home to Menu 然后到 Search 并返回 Home 让我回到 Menu 子视图。我基本上想在单击 Home Tab 时消除所有子视图。每个 TabView 也都在它自己的控制器中。
这是我的代码
从主控制器到菜单控制器
@IBAction func MenuTabAction(_ sender: UIButton) {
let Popup = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "MenuC") as! MenuC
self.addChildViewController(Popup)
Popup.view.frame = self.view.frame
Popup.view.tag = 100
self.view.addSubview(Popup.view)
Popup.didMove(toParentViewController: self)
}
从菜单控制器到主页控制器和搜索控制器
@IBAction func HomeTabAction(_ sender: UIButton) {
if let viewWithTag = self.view.viewWithTag(100) {
print("Tag 100")
viewWithTag.removeFromSuperview()
}
}
@IBAction func SearchTabAction(_ sender: UIButton) {
let Popup = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LocalSearchC") as! LocalSearchC
Popup.view.frame = self.view.frame
Popup.view.tag = 100
self.view.addSubview(Popup.view)
Popup.didMove(toParentViewController: self)
}
我猜测删除超级视图一次只删除 1 个超级视图,所以如果我从 Subview1 转到 subview2 然后单击 HomeTab 它会将我带到 subview1 而不是原来的 HomeTab 。单击主页选项卡时有没有办法删除所有超级视图/子视图?
【问题讨论】:
标签: ios swift addsubview superview