Storyboard References cannot be the destinations of relationship segues prior to iOS 9.0

网上大部分的答案都是把项目切换到 iOS 9.0,的确可以解决这个问题,但是如果项目有需求要支持9.0以下的系统我们还想使用 Storyboard References 该怎么整呢?

在简书上这哥们给出了答案 http://www.jianshu.com/p/fd3f2df8f6a8 不过里面就给了一个日本哥们链接,没说具体的步骤,开始我看到那个日本哥们的操作没怎么看懂(大学日语白学了),后来仔细研究了一下,给一下具体的步骤。

  1. 新建一个项目 干掉系统默认的控制器,拖一个新的TabBarController


    Snip20170702_3.png

2.把TabBarController关联的两个ViewController拆分成连个Storyboard

Snip20170702_4.png

编译运行一下没什么问题,就不贴图了。

3.把项目最低版本改成8.0,然后在编译一下

Snip20170702_7.png

完美报错

4.要解决问题我需要新建一个继承TabBaController的控制器MainController与我们的Main.storyboard的TabBaController控制器产生关联

Snip20170702_8.png

5.关键的两步,首先在MainController加入载入两个Storyboard的代码,直接copy日本哥们代码简单改了一下3.0的语法

Snip20170702_11.png

class MainController: UITabBarController {

override func viewDidLoad() {
    super.viewDidLoad()
    
    let firstViewStoryboard = UIStoryboard(name: "First", bundle: Bundle.main)
    let secondViewStoryboard = UIStoryboard(name: "Second", bundle: Bundle.main)
    
    let firstViewController = firstViewStoryboard.instantiateInitialViewController()
    let secondViewController = secondViewStoryboard.instantiateInitialViewController()
    
    self.viewControllers = [firstViewController!, secondViewController!]
}

}

然后最关键的把Main.storyboard里面Storyboard关联线干掉


Snip20170702_10.png

Command + r 完美运行

虽然日语不好但是差不多看懂了那个日本哥们的意思,就是通过代码建立 Storyboard References 的关系,干掉系统默认的 Storyboard References 的关系

技术拙劣,有不足和错误之处希望指出。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问题描述 当我拆分storyboard的时候
    be343ef6e345阅读 908评论 2 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,870评论 25 708
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,200评论 30 471
  • 张应弛兄,鄂东才子,尤工诗联。我自撰嵌名联二副,微信发他,并曰:今拟二联,请兄斧正。 其一:德不孤而交益...
    高德华阅读 306评论 3 8
  • 凌晨四点,是一个人的浅吟低唱, 赤足轻逃,门栓微敞, 嘘,别激起窸窣声响, 惊退这满屋的周公之邀。 课室门启,前奏...
    黛鱼阅读 112评论 2 1