【发布时间】:2018-01-18 07:10:14
【问题描述】:
我成功地将一个 UITabBar 添加到我的 UIViewController。但是,当标签被标签时,我无法切换视图控制器。我使用了以下方法:
public func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
switch item.tag {
case 1 :
var storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "HardwareViewController") as! HardwareViewController
self.addChildViewController(viewController)
break
case 2 :
self.performSegue(withIdentifier : IDENTIFIER_SEGUE_SYSTEMVC, sender : nil)
break
case 3 :
var storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "SystemViewController") as! SystemViewController
self.view.insertSubview(viewController.view!, belowSubview: self.tabBar)
break
case 4 :
var storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "HardwareViewController") as! HardwareViewController
self.view.insertSubview(viewController.view!, belowSubview: self.tabBar)
break
case 5 :
var storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier : "SystemViewController") as! SystemViewController
self.view.insertSubview(viewController.view!, belowSubview: self.tabBar)
break
default:
break
}
}
但是,这些都不起作用。 Segue 提供了一个新的 ViewController 并隐藏了标签栏。它将控制权集中到一个新的 viewcontroller 中。 我有两个疑问:
- 当各自的标签栏被标签时,如何在同一视图中显示各自的视图控制器?
- 如何加载带有标签栏的视图控制器,并在其中显示初始视图控制器?假设要在第一个选项卡上显示的视图控制器也应该在加载带有选项卡栏的视图控制器时显示。
【问题讨论】:
标签: ios swift3 uiviewcontroller uitabbar uitabbaritem