我想在iPhone屏幕的顶部实现一个标签栏,并希望能够在不同的视图中导航。我使用了委托方法,这是它在故事板中的样子:
但是,因为我无法将TabBar委托给多个容器,所以我实现的代码似乎不起作用,这里是:
class PersonnesController: UIViewController, UITabBarDelegate {
@IBOutlet weak var tabBar : UITabBar!
@IBOutlet weak var comptesContainer : UIView!
@IBOutlet weak var membreContainer : UIView!
@IBOutlet weak var discussionContainer : UIView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
tabBar.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tabBarDelegate(tabBar: UITabBar!, didSelectItem item: UITabBarItem!) {
switch item.tag {
case 1:
comptesContainer.isHidden = false
membreContainer.isHidden = true
discussionContainer.isHidden = true
case 2:
comptesContainer.isHidden = true
membreContainer.isHidden = false
discussionContainer.isHidden = true
case 3:
comptesContainer.isHidden = true
membreContainer.isHidden = false
discussionContainer.isHidden = true
default:
comptesContainer.isHidden = false
membreContainer.isHidden = true
discussionContainer.isHidden = true
}
}
}
真正的问题似乎是我只能将TabBar委托给一个容器,而不是委托给三个容器。我怎么能做到这一点?
PS:我发现的最佳回复是here但是我没有实现它,我不知道他/她如何设法多次委派。
答案 0 :(得分:1)
我的问题是,为什么不使用UITabBarController?只要没有人调用委托(这就是UITabBarController的功能),实现委托就不会做你想做的事。
答案 1 :(得分:0)
您确定tabbar的委托是否已设置为视图控制器?
.card {
height: 300px;
width: 800px;
border: 2px solid grey;
display: inline-block;
}
.cardImg {
display: inline-block;
height: 100%;
width: 300px;
border: 1px solid black;
background: url(https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png)
}
.cardContent {
display: inline-block;
vertical-align: top;
}
你可以尝试一下,看看是否正在调用委托功能吗?