Swift - Tab Bar Controller

Swift - Tab Bar Controller 首页 / iOS入门教程 / Swift - Tab Bar Controller

在iOS应用程序中,无涯教程必须提供用户函数,以在应用程序的完全不同的部分之间切换。无涯教程可能需要在底部使用一个带有不同按钮的标签栏,以便用户与这些按钮进行交互以切换到应用程序的不同部分。为此,使用了标签栏控制器。在本教程的这一部分中,无涯教程将讨论标签栏控制器。

class UITabBarController : UIViewController 

在Tab Bar选项卡栏界面中,一个选项卡栏显示在屏幕底部,带有多个选项卡栏按钮项,用于在应用程序的不同模式之间进行选择。下图显示了如何在iOS的“Health”应用程序中配置选项卡栏界面。

iOS Tab Bar ControlleriOS Tab Bar Controller

标签栏控制器维护一个View Controller数组,其中每个选项卡都与View Controller导航堆栈或自定义View Controller相关联。当用户选择一个特定的选项卡时,将显示关联堆栈的根视图控制器。标签栏界面用于呈现不同类型的信息或使用完全不同的样式呈现相同类型的信息。

例1

在此示例中,无涯教程将使用标签栏控制器创建一个非常简单的项目。在这里,无涯教程只会使用Storyboard来开发应用程序。

首先,无涯教程需要将标签栏控制器添加到Storyboard。为此目的,在对象库中搜索UITabBarController并将结果拖动到Storyboard。这将在项目中创建一个标签栏控制器,如下图所示。

iOS Tab Bar Controller

在这里,无涯教程观察到选项卡栏控制器最初管理着两个具有Item 1和2的子视图控制器,其中已经选择了Item1。如果通过将选项卡栏控制器作为初始视图控制器按原样运行项目,那么无涯教程将看到显示的项目1在选项卡栏界面中具有两个项目,并且无涯教程可以选择两个项目以分别显示每个项目在下图中。

iOS Tab Bar Controller

在这里,无涯教程可以配置选项卡条项,然后在"属性"检查器中选择自定义图像。在特定视图控制器中选择选项卡栏,然后转到属性检查器以更改选项卡栏项的自定义图像,如下图所示。

链接:https://www.learnfk.comhttps://www.learnfk.com/ios/ios-tab-bar-controller.html

来源:LearnFk无涯教程网

iOS Tab Bar Controller

让无涯教程更改系统项目以搜索第1项和第2项的联系人。现在,无涯教程将改变第1项和第2项的样式,以在Tab条接口中识别它们。因此,让无涯教程改变第1项和第2项的背景颜色,无涯教程也将标签添加到两个视图控制器。

iOS Tab Bar Controller

现在,运行此项目,无涯教程将获得以下输出。

iOS Tab Bar ControlleriOS Tab Bar Controller

现在,让无涯教程在项目中添加第三个视图控制器。为此目的,在对象库中搜索UIViewController并将结果拖动到Storyboard。要将该视图控制器附加到标签栏控制器,无涯教程必须定义它们之间的关系。从选项卡栏控制器控制拖动到查看控制器并选择它们之间的视图控制器关系,如下图所示。

iOS Tab Bar Controller

它将将新添加的视图控制器连接到Tab栏控制器。现在,无涯教程将更改视图控制器的样式,并为其添加标签以进行识别。

最后,项目的接口构建器看起来像以下图像。

iOS Tab Bar Controller

输出

iOS Tab Bar Controller

示例2

在此示例中,无涯教程将使用Web视图模拟IOS应用程序。在此,无涯教程将在选项卡栏控制器中配置三个视图控制器(HomeviewController,JavaviewController,PythonViewController)。无涯教程将添加具有三个子视图控制器的选项卡栏视图控制器,如下图所示。

iOS Tab Bar Controller

在此示例中,无涯教程将使用Web视图加载视图控制器中的特定链接。因此,无涯教程需要将特定的Web视图添加到视图控制器中。在对象库中搜索WebView并将结果拖动到每个视图控制器。此外,在视图控制器中定义WebView的约束。

iOS Tab Bar Controller

homeviewcontroller.swift

import UIKit
import WebKit


class HomeViewController: UIViewController {
    @IBOutlet weak var webView: WKWebView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
       //Do any additional setup after loading the view.
        
        guard let url = URL(string: "https://www.learnfk.com/") else {return}
       
        webView.load(URLRequest(url: url))
        
    }
    


}

javaviewcontroller.swift

import UIKit
import WebKit


class JavaViewController: UIViewController {


    @IBOutlet weak var webView: WKWebView!
    override func viewDidLoad() {
        super.viewDidLoad()


       //Do any additional setup after loading the view.
         guard let url = URL(string: "https://www.learnfk.com/java-tutorial") else {return}
        
         webView.load(URLRequest(url: url))


    }
    
}

pythonviewcontroller.swift

import UIKit
import WebKit


class PythonViewController: UIViewController {
    @IBOutlet weak var webView: WKWebView!
    
    override func viewDidLoad() {
        super.viewDidLoad()


       //Do any additional setup after loading the view.
        
        guard let url = URL(string: "https://www.learnfk.com/python-tutorial") else {return}
        
         webView.load(URLRequest(url: url))
    }
    
}

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

移动端自动化测试实战 -〔思寒〕

罗剑锋的C++实战笔记 -〔罗剑锋〕

技术面试官识人手册 -〔熊燚(四火)〕

说透数字化转型 -〔付晓岩〕

操作系统实战45讲 -〔彭东〕

容量保障核心技术与实战 -〔吴骏龙〕

说透芯片 -〔邵巍〕

手把手带你搭建秒杀系统 -〔佘志东〕

大型Android系统重构实战 -〔黄俊彬〕

好记忆不如烂笔头。留下您的足迹吧 :)