美文网首页iOS基础扩展自用收藏iOS开发
iOS开发 - SB与纯代码界面之间的那点破事

iOS开发 - SB与纯代码界面之间的那点破事

作者: 小黑Swift | 来源:发表于2016-07-02 00:31 被阅读1984次

SB已经慢慢在开发中占用绝对性的优先,但是有时候我们要使用纯代码界面与SB混合开发时候,难免在跳转中会遇到一些问题。🚗 滴滴滴...小伙伴快上车

此篇幅暂讨论SB与纯代码界面之间的关系,顺便说下出发与回来的事情。
下次再详谈 SB 与 SB 之间的 2B 事情。

小导航:内容不多,自己看

出发


情况一:SB 与 纯代码界面

SB 与 纯代码界面.png
        //show比较智能 无论当前是否在栈中 智能识别当前要使用什么转场
        let vc = SecondViewController()
        self.showViewController(vc, sender: nil)
    
        /// 不在栈时候 A -> B
        //self.presentViewController(vc, animated: true, completion: nil)
        /// 存于栈时候  NAV -> A -> B
        //self.navigationController?.pushViewController(vc, animated: true)
    
        // 转场时候顺便 给第二个视图增加导航栈 即 A -> NAV -> B
        let vc = SecondViewController()
        let nav = UINavigationController(rootViewController: vc)
        self.showViewController(nav, sender: nil)

情况二:SB 与 SB 用代码转场时候

SB 与 SB 用代码转场时候.png
    ///要先拿到SB,不然直接转场,有时出现黑屏情况,估计跟他绑定后,处理不同类的优先关系
    //-> 黑屏是因为默认ViewController默认视图背景是黑的,但是SB默认背景是白的
    // 类跟SB绑定后 [SB + vc.swift]     执行顺序 A -> [SB -> vc.swift]
    let sb = UIStoryboard(name: "Main", bundle:nil) // Main - 即所在SB的名字
    let vc = sb.instantiateViewControllerWithIdentifier(String(SecondViewController)) as! SecondViewController
    self.showViewController(vc, sender: nil)

返程 - 夜深了


    ///出发 A -> B 
    ///  A  <- B
    self.dismissViewControllerAnimated(true, completion: nil)

    ///出发 NAV -> A -> B 
    /// NAV -  A  <- B  <- C
    //弹回上个视图
    self.navigationController?.popViewControllerAnimated(true) 
    //直接弹回根视图 A
    self.navigationController?.popToRootViewControllerAnimated(true)
    //弹回栈中的指定位置 NAV [A,B,C]      0 - A(根)  1- B   2 - C (当前)
    self.navigationController?.popToViewController((self.navigationController?.viewControllers[0])!, animated: true)
    ///小提示:要想返回传值时候,正常传过去时候那样即可

后续...

相关文章

网友评论

  • narutog17:用代码加xib 的路过。。。。
  • 芮星晨:我一般都是用SB进行VC的框架设计, 然后一些小细节或者需要精确控制的地方使用代码, 界面跳转用代码, SB中没有一根线,因为跳转的时候往往伴随着变量的传递和回调, 这用segue真是难受
  • WoodenSouthRock:看到纯代码就进来了,无爱 sb
    小黑Swift:@CNHanyan 大爱SB,大势所趋
  • Rock86:sb 到 sb 为什么不直接 segue 哩?
    小黑Swift:@醋溜草莓便当 不在一个SB的话,1.可以用代码跳转或者 2. 使用iOS9新特性 storyboard references
    65067d1326a2:10万个界面10万条线?不在一个SB里咋办?
    小黑Swift:@He_Momo 因为这里是SB跟代码之间的故事

本文标题:iOS开发 - SB与纯代码界面之间的那点破事

本文链接:https://www.haomeiwen.com/subject/ogbfjttx.html