IOS Swift3.1 手动页面跳转

3种方式

方式1 普通页面控制器,这种方式属于模态,只能一层一层叠加或一层一层顺序减少,不能实现跨页面跳转,比如  A->B->C->D,  D 想往回跳,只能到C, 不能到 A和B

//跳转

self.present(Page1_Spash(), animated: false, completion: nil)

//返回

self.dismiss(animated: false, completion: nil)


方式2. 使用导航控制器,这种方式,属于堆栈,可以实现简单的跨页面跳转, 比如A->B->C->D,  D 想往回跳,可以直接跳转到A或B或C,但是跳转后的堆栈,会发生变化,

比如 D跳转到B后,不能直接跳到D, 因为跳转B后堆栈中的C和D都没有了,如果想重新进入C/D,则需要重新压栈

打印堆栈方法:

      let vews: [UIViewController] = (self.navigationController?.viewControllers)!

   if  vews.count > 0 {

                for vew in vews{
            print( type(of: vew))
        }

}
 

1. 压栈   self.navigationController?.pushViewController(VC2(), animated: true )

2. 弹出  self.navigationController?.popToViewController(appDG.page_02!, animated: true)  //appDG.page_02堆栈中某项

3. 直接跳转堆栈中已经有的   

4. 根视图  self.navigationController?.popToRootViewController(animated: true)


方式3  UITabBarController,这种方式属于并列的视图   可以在任意视图间切换

切换方法  TabBar?.selectedIndex = 1 //从0开始

打印视图数量

        let vews: [UIViewController] = (appDG.TabBar?.viewControllers)!
        print( vews )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值