当前位置: 首页 > 面试题库 >

如何以快速方式在UITabBarController中以编程方式添加选项卡?

鞠建安
2023-03-14
问题内容

如何通过UIViewController扩展的任何类以编程方式创建选项卡:

class DashboardTabBarController: UITabBarController {

    override func viewDidLoad() {
        //here

    }
 ...

}

问题答案:

更新SWIFT 5

如何以UITabBarController编程方式创建的一个示例如下所示:

首先,我们创建UIViewControllers标签栏界面的每个标签的内容。对于此示例,我们仅创建一个非常简单的示例。

class Item1ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        view.backgroundColor = UIColor.green
        self.title = "item1"
        print("item 1 loaded")
    }
}

现在,UITabBarController

我们创建了UIViewControllers要显示在标签栏中的的新实例。然后,我们为创建的每个实例创建一个图标,然后创建一个数组,其中包含所有UIViewControllers为标签栏界面的每个标签指定内容的数组。
数组中视图控制器的顺序与选项卡栏中的显示顺序相对应

class DashboardTabBarController: UITabBarController, UITabBarControllerDelegate {
    override func viewDidLoad() {
        super.viewDidLoad()
        delegate = self
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        let item1 = Item1ViewController()
        let icon1 = UITabBarItem(title: "Title", image: UIImage(named: "someImage.png"), selectedImage: UIImage(named: "otherImage.png"))
        item1.tabBarItem = icon1
        let controllers = [item1]  //array of the root view controllers displayed by the tab bar interface
        self.viewControllers = controllers
    }

    //Delegate methods
    func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
        print("Should select viewController: \(viewController.title ?? "") ?")
        return true;
    }
}


 类似资料:
  • 我正在尝试在Android上添加Wifi网络,我想知道如何连接到不广播其SSID的Wifi网络(它是否有空SSID或带有\0s的清晰SSID)。 这是我目前用于广播其SSID的Wifi网络的内容:

  • 我正在使用SpringDoc,并试图以编程方式向OpenApi添加一个模式,但没有成功。 mySchema的描述没有添加到我在生成的YAML文件中看到的模式列表中,如果我试图引用它:

  • 问题内容: 我想在头部分中以编程方式添加StyleSheets,但是我看到的示例之一似乎需要多行代码才能仅添加一个样式表,即使我可能需要很多: 示例代码: 我也使用方法,但是它也不起作用。对象null抛出了错误。 我也使用了和东西,但是它们抛出了文字错误,这是我认为的常见错误。 我使用此代码: 起初它起作用,但是当我更改页面时,它停止工作。 我正在使用“母版页”,并且正在文件中编写这些代码,也有人

  • 我试图在logback中动态添加一个appender。这是我的代码。 它工作正常,但仅适用于添加追加器的特定记录器。有没有办法让它适用于应用程序中的所有记录器?我正在寻找一种动态添加和删除追加器的方法。

  • 问题内容: 创建on 之后,如何在Swift上以编程方式添加 导航 界面。这是我当前的代码: 我在看文档。它具有以下准则 问题,我不知道如何在Swift上正确执行此操作。我希望在中的单独方法中设置和修改。有什么想法吗? 问题答案: 要创建导航控制器,请使用: 然后将其放入数组中: 但是,只有在加载视图控制器后,才能将UIControls添加到导航栏。在这是不可能的,因为的导航栏为零。正确的方法是在

  • 我想以编程方式在liferay中添加站点,因此我创建了一个负责以编程方式添加站点的portlet,但它不起作用,所以请任何人在这方面帮助我。当我单击create site is时,我得到的错误是。这是我的代码: &这是我的sites.java,它是一个操作文件: 我的日志文件是: