问题描述
限时送ChatGPT账号..我需要在没有标签栏控制器的情况下在我的视图中添加一个标签栏,因为在我的 prepareForSegue
函数中,我将数据传递给包含标签栏的视图.
I need to add an tab bar in my view with out tab bar controller, because in my prepareForSegue
function I pass data to my view whitch contains the tab bar.
我从对象库中添加标签栏及其项目,并在我的视图类中添加 UITabBarDelegate.我的代码是这样的:
I add the tab bar from the object library with its items, and in my view class I add UITabBarDelegate. my code is like this:
class SchedaCompletaVC: UIViewController, UITabBarDelegate {
var event:Event! // data passing from prepareforsegue
@IBOutlet var mainTabBar:UITabBar!
var descrizioneTab:UIViewController! //if i click on first tab, so my default view
var mappaTab:UIViewController! // second tab
override func viewDidLoad() {
super.viewDidLoad()
println("event \(event.eventId)")
// Do any additional setup after loading the view.
}
func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem!) {
switch (item.tag) {
case 1:
self.view.insertSubview(descrizioneTab.view.belowSubview(mainTabBar)) //here I had error
break;
case 2:
//if second tab is selected
break;
default:
break;
}
}
我从 教程 是针对objective-c 的,我尝试将其快速转换.
I got this code from an tutorial whitch is for objective-c, I tried to convert it in swift.
我的代码不起作用,我不知道该怎么办?
My code doesn't work, I don't know what to do?
请帮忙.谢谢!
更新:我的故事板是这样的:
Update: my storyboard is like this:
推荐答案
这是 swift 版本 :-
Here is the swift version :-
import UIKit
class ViewController: UIViewController, UITabBarDelegate {
@IBOutlet weak var mainTabBar: UITabBar!
var viewController1: UIViewController?
var viewController2: UIViewController?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem!) {
switch item.tag {
case 1:
if viewController1 == nil {
var storyboard = UIStoryboard(name: "Main", bundle: nil)
viewController1 = storyboard.instantiateViewControllerWithIdentifier("ViewController1") as! ViewController1
}
self.view.insertSubview(viewController1!.view!, belowSubview: self.mainTabBar)
break
case 2:
if viewController2 == nil {
var storyboard = UIStoryboard(name: "Main", bundle: nil)
viewController2 = storyboard.instantiateViewControllerWithIdentifier("ViewController2") as! ViewController2
}
self.view.insertSubview(viewController2!.view!, belowSubview: self.mainTabBar)
break
default:
break
}
}
}
然后你应该点击 UITabBarItem &ctrl 将其拖到 viewcontroller 并单击委托.
Then you should click the UITabBarItem & ctrl drag it to viewcontroller and click delegate.
标签栏项目的标签(第一个标签项目标签为1,第二个标签项目标签为2)
Tag for Tab Bar Item( for first tab item tag is 1, for second tab item, tag is 2)
ViewController 的 StoryBoard 标识符(分别为 ViewController1 和 ViewController2)
StoryBoard identifier for ViewController(ViewController1 and ViewController2, Respectively)
这篇关于快速添加没有标签栏控制器的标签栏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
更多推荐
[db:关键词]
发布评论