快速添加没有标签栏控制器的标签栏

编程入门 行业动态 更新时间:2024-10-27 12:24:30
本文介绍了快速添加没有标签栏控制器的标签栏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送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:关键词]

本文发布于:2023-05-01 11:43:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1409322.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:标签   控制器   快速

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!