swift下如何配置引导页后跳转rootViewController

本文介绍在Swift应用中如何设置引导页并在完成引导后跳转至rootViewController,即一个包含多个子控制器的TabBarController。通过在AppDelegate中创建引导页ViewController,设置其闭包,在闭包中调用start()方法,更新rootViewController为包含多个子控制器的UINavigationController,从而实现从欢迎页到复杂导航结构的平滑过渡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在写一个小demo的时候发现如果将rootViewController定义在引导页(欢迎页)上时,之前设置的导航栏和tabBar都不能正常显示于是查书查到

class AppDelegate: UIResponder, UIApplicationDelegate {


    var window: UIWindow?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        //先设置欢迎页

let vc = ViewController()

        //将欢迎页设置为根视图

self.window?.rootViewController = vc

        self.window?.backgroundColor = UIColor.whiteColor()

        //调用闭包

vc.startClosure = {

        () -> Void in

            self.start()

        } 

    }

    //闭包所用的方法,用来启动之后的View,并且修改根视图

    func start(){

        let vc1 = SecondViewController()

        let vc2 = ThirdViewController()

        let vc3 = FoutViewController()

        let vc4 = FifthViewController()

        vc1.tabBarItem.title = "1"

        vc2.tabBarItem.title = "2"

        vc3.tabBarItem.title = "3"

        vc4.tabBarItem.title = "4"

        let tabber = UITabBarController()

        //设置UITabBarController

tabber.viewControllers = [vc1,vc2,vc3,vc4]

//设置UINavigationController的根视图,这里的根视图必须为tabber而不是欢迎页(vc)

        let navi = UINavigationController(rootViewController: tabber)

        self.window?.rootViewController = navi

    }

再回到欢迎页里设置闭包

var startClosure : (() -> Void)?

并在欢迎页跳转后面View的func里面调用这个闭包即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值