加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift present 与 push 跳转问题

发布时间:2020-12-14 06:29:39 所属栏目:百科 来源:网络整理
导读:Swift 使用presentViewController 跳转页面后显示黑屏 原因:storyboard 制作页面 和 纯代码页面,需要使用两种不同方法进行页面跳转 Storyboard 界面:使用代码跳转 let sb = UIStoryboard (name: "Main" ,bundle: nil ) let vc = sb.instantiateViewContro

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,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 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读