关于Storyboard故事板, Segue 的使用,storyboard的拆分

1.相关介绍。

对于ios开发中,其实storyboard其实是比较有用的。它能够让你一眼看清应用的所有跳转关系。Storyboard 在iOS5时引入,它能节约你创建UI的时间。storyboard与常规nib(nib文件后来改名叫xib文件,小伙伴不用纠结它是啥)文件相比,有很多优势

1.storyboard可以描述各种场景之间的过渡,这种过渡被称作"segue",你通过简单的ctrl-dragging就能搞定,减少代码量

2.storyboard支持table view的prototype cell,这意味着你可以在storyboard中编辑cell,减少代码量

当然任何东西都有它存在的优点。

在我们常用的xib它和storyboard分开了。它更能方便你封装,就是创建时时间长点,但是封装好了后面复用的时候就比在storyboard中快了。我在storyboard中也编辑过cell,通过xcode拖拽编辑的cell是很快的,如果再用的使用也可以storyboard的cell布局复制在要创建的viewcontroller中。

我亲身实践通过storyboard开发,会节省不少开发时间,我了解ios开发中大部分开发者都是用oc开发的。很多人只是简单了解storyboard,并不会完全使用。会有担心它不稳定,出问题了很难自己解决。的确用storyboard有一点小坑,但是当你熟悉它的脾气后你就能很好使用它。关键是对于尝试学习的同学来说,那些问题很可能让他放弃学习使用storyboard,因为有些问题。我认为是编译器的存在的不友好问题。对于开发者来说那些问题不是他们造成的。他们的实际上是没有问题的。或者有小技巧他们不知道怎么操作。还有就是出了错他们不好定位。下面不废话了,开始介绍使用。

2.大家应该知道ui布局中的设置,优先级是低于代码的。你在storyboard中的编辑设置后代码做了设置看到的是代码操作的结果。

xcode现在是10.2.1版本。添加控件之前在右侧栏的下方,现在改到了右上方顶部。你可以搜索使用你需要的控件。

如图是应用最开始的时候的。默认是应用启动的viewcontorller。我们一般要有多个tab的可切换的view contorller。当你添加进来viewcontroller你会想要的是navigationcontroller。不了解的可以百度下。点击选中你新添加的controller,如图操作。

 如何将tabviewcontroller和navigationcontroller关联起来。按住control键从tabviewcontroller中的小按钮拖到navigationcontroller中即可如图

拖拽后会有弹窗弹出选择viewcontrollers即可。

后面的跳转关系都是这样选的不一样,具体了解查看下面链接

Segue的几种类型

有了这个sugue只是看到了界面的跳转关系,并不能跳转,当然如果你是从按钮拖的,你点击按钮就能跳过去了,不用写代码了是不是很简单。这样就完了吗?没有

1.你是不是有时候要传值,

2.有时候要判断跳转。或者你一个界面有多个sugue,你就要代码控制了。

3.说到这里,你有没有想过你所有的界面关系,都在一个storyboard中画出来问题很大,xcode要加载出来这个storyboard就很耗时了。你愿意等吗?就算你愿意等,如果你是多个人协同开发问题来了,你们都在一个storyboard中做改动,合并不久冲突了吗?

4.还有你第一个图界面你设置了。如果需求你让你动态改变有几个nevigationcontroller

我们还是来继续讲sugue的使用。代码控制要怎么写呢?

 点击你的sugue看右侧如图的地方看我加了identifier,代码中你要用这个来却分你是哪个segue。

addTarget(self, action: #selector(completeBtnClicked(sender:)), for: .touchUpInside)

@objc func completeBtnClicked(sender: UIButton?){

        

        if  UserInfoManager.getUserInfo()?.identity == 2{

            performSegue(withIdentifier: "ToMatchmakerBaseInfoViewControllerSegueID", sender: nil)

        }else{

            performSegue(withIdentifier: "ToCompleteChildInfoViewControllerSegueID", sender: nil)

        }

    }

关于Storyboard故事板, Segue 的使用,storyboard的拆分(二)

猜你喜欢

转载自blog.csdn.net/chengzuidongfeng/article/details/92376101
今日推荐