游戏技术文章

iOS开发-UI (十)StoryBoard

时间:2017-2-15 11:35:59  作者:棋牌资源网  来源:棋牌资源网  查看:7698  评论:0
内容摘要:知识点1.UIStoryBoard介绍2. UIStoryBoard的界面跳转3. UIStoryBoard界面之间的传值=========================      UIStoryBoard介绍     &nbs...
知识点

1.UIStoryBoard介绍

2. UIStoryBoard的界面跳转

3. UIStoryBoard界面之间的传值

=========================      

UIStoryBoard介绍      

    UIStoryBoard是你可以用来定义用户界面的一种新的方式,像xib。与xib不同的是它可以同时管理多个ViewController,而且可以在UIStoryBoard中配置ViewController 之间的跳转关系。 如果主窗口只有一个view controller是作为UIStoryBoard的第一个界面,就需要勾选上 Initial Scene。UIStoryBoard将原有工程中的所有xib文件集成在一起,用拖拽的方式建立起两个viewController之间的跳转关系,使得整个程序的UI跳转逻辑清楚明了。使用UIStoryBoard后,界面相关的代码编写将更少。

 

1.如果主窗口只有一个view controller是作为story board的第一个界面,就需要勾选上 Initial Scene。

选中is initial view controller 当前的scene成为进入应用第一个scene

 iOS开发-UI_(十)StoryBoard

2.在UIStoryBoard当中可以直接在UITableView上定制cell

 iOS开发-UI_(十)StoryBoard

========================= 

UIStoryBoard的界面跳转 

3.注意push和present的区别

  1).push对应pop,present对应dismiss;

  2).present只能逐级返回,push所有视图由视图栈控制,可以返回上一级,也可以返回到根vc,其他vc。

  3).present一般用于不同业务界面的切换,push一般用于同一业务不同界面之间的切换。

4.如何跳转到未连线的控制器

1)+ (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil;

作用:获取某个对应的UIStoryboard对象

 

2)- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier

作用:获取该UIStoryboard的文件中的某个带有identifier标识的控制器 //跳转到未连接的控制器

    

复制代码
//取得Main.StoryBoard

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

//通过StoryBoardID获得对应的控制器对象

UIViewController *ctl = [storyBoard instantiateViewControllerWithIdentifier:@"ctlC"];

//代码跳转
[self.navigationController pushViewController:ctl animated:YES];
复制代码

 

 

 

6.如何回到前一个界面

 

在上一级视图控制器当中实现一个方法,要满足一下格式

-(IBAction)+任意方法名+(UIStoryboardSegue *)+任意变量名

复制代码
//UIStoryBoard的连线回跳方法

-(IBAction)unwindingSegue:(UIStoryboardSegue *)segue{

NSLog(@"sourceViewController = %@ destinationViewController = %@",segue.sourceViewController,segue.destinationViewController);

//作用:在反向传值当中会应用到
复制代码

 

 

 

========================= 

 UIStoryBoard界面之间的传值

 

1.正向传值

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

作用:即将切换场景时候调用

复制代码
//当切换界面(push,present)的时候,就会调用以下方法

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{


    //正向传值

    if ([segue.identifier isEqualToString:@"login"]) {

        LoginViewController *ctl = segue.destinationViewController;

        //赋值

        ctl.userNameStr = self.userNameTF.text;

        ctl.passwordStr = self.passWordTF.text;

    }
复制代码

 

 

 

2.反向传值(传统的block,协议代理,通知中心,单例传值依然奏效)

-(IBAction)unwind:(UIStoryboardSegue *)segue

作用:返回上一个场景时候调用

 

 
//UIStoryBoard的连线回跳方法

//先实现回跳方法,才能连线

-(IBAction)unwindingSegue:(UIStoryboardSegue *)segue{
    //反向传值(UIStoryBoard专用)
    //判断是否点击的是注册完成

    if ([segue.identifier isEqualToString:@"finish"]) {
        //严谨

        if ([segue.sourceViewController isKindOfClass:[RegisterViewController class]]) {

            RegisterViewController *ctl = segue.sourceViewController;

        //刷新UI

            self.userNameTF.text = ctl.userNameTF.text;

            self.passWordTF.text = ctl.passWordTF.text;

//作用:在反向传值当中会应用到
        }
    }

标签:iOS开发-UI(十)StoryBoard 

欢迎加入VIP,【VIP售价:只要288元永久VIP会员】畅享商业棋牌游戏程序下载,点击开通!

下载说明


☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,

☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!

☉唯一站长QQ:1004003180  [人格担保-本站注重诚信!]

☉购买建议E-mail:1004003180@qq.com   源码收购 E-mail:1004003180@qq.com    

☉本站文件解压密码  【文章内都自带解压密码,每个密码不同!】


本站提供的所有源码,均来源站长提供,仅学习交流 浙ICP备09009969号

由此产生不良后果和法律责任与本站无关,如果侵犯了您的版权,请来信告知 1004003180@qq.com 将及时更正和删除! 

Copyright © 2008-2022 棋牌资源网,你身边的棋牌资源下载站    All Rights Reserved