Swift iOS : UITabBarController

Swift iOS : UITabBarController,第1张

概述类UITabBarController是一个特殊的UIViewController,它可以包含多个UIViewController,并且在页面底部显示一个Tabbar作为UIViewController的切换显示开关。 如下案例,展示了包含两个UIViewController的UITabBarController,可以通过底部的Tabbar来切换显示: import UIKit class

类UITabbarController是一个特殊的UIVIEwController,它可以包含多个UIVIEwController,并且在页面底部显示一个Tabbar作为UIVIEwController的切换显示开关。

如下案例,展示了包含两个UIVIEwController的UITabbarController,可以通过底部的Tabbar来切换显示:

import UIKit    class Page1: UIVIEwController {        overrIDe func vIEwDIDLoad() {            super.vIEwDIDLoad()            let cc = UILabel(frame: CGRect(x: 10,y: 50,wIDth: 200,height: 50))            cc.text = "Page #1"            cc.textcolor = UIcolor.black            self.vIEw.addSubvIEw(cc)        }    }    class Page2: UIVIEwController {        overrIDe func vIEwDIDLoad() {            super.vIEwDIDLoad()            let cc = UILabel(frame: CGRect(x: 10,height: 50))            cc.text = "Page #2"            cc.textcolor = UIcolor.black            self.vIEw.addSubvIEw(cc)        }    }    class Tabbar: UITabbarController,UITabbarControllerDelegate {        overrIDe func vIEwDIDLoad() {            super.vIEwDIDLoad()            delegate = self        }                overrIDe func vIEwWillAppear(_ animated: Bool) {            vIEwControllers = [Page1(),Page2()]            let r = UIImage.imageWithcolor(UIcolor.black)            vIEwControllers![0].tabbarItem = UITabbarItem(Title: "Page 1",image:r,tag:0)            vIEwControllers![1].tabbarItem = UITabbarItem(Title: "Page 2",image: r,tag:1)            }                //Delegate methods        func tabbarController(_ tabbarController: UITabbarController,dIDSelect vIEwController: UIVIEwController) {            print("dID select vIEwController: \(vIEwController.tabbarItem.tag)")        }    }    @UIApplicationMain    class AppDelegate: UIResponder,UIApplicationDelegate {        var window: UIWindow?        func application(_ application: UIApplication,dIDFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {            self.window = UIWindow(frame: UIScreen.main.bounds)            self.window!.rootVIEwController = Tabbar()            self.window!.rootVIEwController!.vIEw.backgroundcolor = UIcolor.white            self.window?.makeKeyAndVisible()            return true        }    }    // same code    extension UIImage {        class func imageWithcolor(_ color: UIcolor) -> UIImage {            let rect = CGRect(x: 0.0,y: 0.0,wIDth: 10.0,height: 10.0 )            UIGraphicsBeginImageContext(rect.size)            let context = UIGraphicsGetCurrentContext()                        context?.setFillcolor(color.cgcolor)            context?.fill(rect)                        let image = UIGraphicsGetimageFromCurrentimageContext()            UIGraphicsEndImageContext()                        return image!        }    }    //let r = UIImage.imageWithcolor(UIcolor.redcolor()).imageWithRenderingMode(.AlwaysOriginal)    //let b = UIImage.imageWithcolor(UIcolor.bluecolor()).imageWithRenderingMode(.AlwaysOriginal)

可以点击屏幕显示的下方按钮切换视图控制器。

本案例中,共有三个需要关注的类:

Page1,Page2。都是UIVIEwController的子类,内含一个UILabel区别显示为Page #1,Page #2

Tabbar 是UITabbarController的子类,实现协议UITabbarControllerDelegate,并在vIEwDIDLoad时设置委托到自身;属性vIEwControllers是一个数组,用于装入多个UIVIEwController的实例,当执行:

func vIEwWillAppear(_ animated: Bool)

初始化此数组,创建需要选择的UIVIEwController实例进来。

Tabbar就是一个UIVIEwController的子类,因此可以把它设置到self.window!.rootVIEwController上,从而成为window的rootVIEwController。

总结

以上是内存溢出为你收集整理的Swift iOS : UITabBarController全部内容,希望文章能够帮你解决Swift iOS : UITabBarController所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1065839.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存