Swift present 与 push 跳转问题

5 篇文章 0 订阅

Swift 使用presentViewController 跳转页面后显示黑屏

原因:storyboard 制作页面 和 纯代码页面,需要使用两种不同方法进行页面跳转

Storyboard 界面:使用代码跳转
    let sb = UIStoryboard(name: "Main", bundle:nil)
    let vc = sb.instantiateViewControllerWithIdentifier("SecondViewController") as! SecondViewController

    self.presentViewController(vc, animated: true, completion: nil)

注意:记得要设置 StoryboardID ,可以在 Identifier inspector 中修改


StoryboardID
纯代码界面
    //present方式
    let vc = SecondViewController()
    self.presentViewController(vc, animated: true, completion: nil)
    // 转场动画风格 modalTransitionStyle
Modal 方式转场一般使用在几个没有共同样式的控制器之间。

如果有共同样式的话,大都数用 navigation控制器和 tabBar控制器来实现。

     //push方式
     self.navigationController.pushViewController(vc, animated:true)
扩展 naviagation //push方式

如果是同个栈的控制器 需要弹出到指定界面:

    //弹回根视图
    self.navigationController?.popToRootViewControllerAnimated(true)
    //指定位置
    self.navigationController?.popToViewController((self.navigationController?.viewControllers[0])!, animated: true)

SB与代码结合 ,使用SB连接时候,多条连线传值问题
    //使用SB连接转场每次都会触发下面方法
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        //可再每个连线处类似按钮的东西加上identifier,即可判断不同指向
        if segue.identifier == "segueIdentifier" {

            //不带导航的方式
             let vc = segue.destinationViewController as! nextVC
            //下个视图前了带了导航的方式
            //let nv_vc = segue.destinationViewController.childViewControllers[0] as! nextVC
        }
    }


文/逗牛(简书作者)
原文链接:http://www.jianshu.com/p/376274daea82
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值