• 控制器跳转小常识


    关于控制器跳转需要注意的问题:

     

    一般三种方式进行跳转: push,modal,custom

    一般跳转相应实现方法和注意点:

    1.[self.navigationController pushViewController:jump animated:YES];

     

    2.[self presentModalViewController:jump animated:YES];

    注意:如果还想要modal回上一个界面还需要另外设置个按钮专门监听点击

     [self dismissModalViewControllerAnimated:YES];

     

    3.在storyboard中点击ctrl从自身controller连接到另外一个controller设置跳转方式,一般我设置push,然后为segue绑定标示符,作用:跳转的时可以知道要跳转的相应controller

    如果用的连线设置segue跳转方式和绑定segue标示符的话,则不需要创建控制器来跳转了。

    直接用:[self performSegueWithIdentifier:@"jump" sender:self];就可跳转到storyboard描述的界面

     

    关于所要跳转得到的界面的Controller创建注意点:

    1.代码创建:- (void) loadView;

    JumpViewController *jump = [[JumpViewController alloc] init];得到的就是代码描述的

    [self.navigationController pushViewController:jump animated:YES];跳转到对应代码描述的界面

     

    2.没有使用- (void) loadView;使用xib描述(注意xib名字创建的时候必须和JumpViewController同名

    )这样可以省去指定名字加载xib(File’s Owner的class记得设置为JumpViewController,并且对View进行连线

    JumpViewController *jump = [[JumpViewController alloc] init];得到的就是xib描述的

    [self.navigationController pushViewController:jump animated:YES];跳转到对应xib描述的界面

     

    3.使用的storyboard描述搭建的界面(class那里记得设置为自定义JumpViewController,Storyboard ID记得要设置

    重点:Storyboard如果不主动加载它是不会自己加载的,所以必须要手动加载它,这个时候就不要使用[[JumpViewController alloc] init]创建了。

    JumpViewController *jump = [self.storyboard instantiateViewControllerWithIdentifier:@"jump"];加载标示符所对应的storyboard得到storyboard描述的界面

     

        [self.navigationController pushViewController:jump animated:YES];跳转到storyboard描述的界面

     

    如果你用Storyboard搭建界面,但是却用JumpViewController *jump = [[JumpViewController alloc] init];方式创建controller,如果代码或者xib实现了view,则跳转到对应代码或xib创建的界面,如果代码和xib没有实现,你又没有主动去加载Storyboard,则会系统帮你创建一个view,而且是黑色的无任何数据,这就是为什么不注意导致的黑屏不显示任何数据问题。因为数据和空间都在Storyboard里面,而系统帮你自动创建的压根不是Storyboard对应的view,就是这样造成的黑屏和无数据显示。

     

     

    注意:如果使用了xib描述的view,突然想换代码编写,发现还出现xib描述的界面,记得clear一下,保险一点就是卸载软件,在clear。

  • 相关阅读:
    基于 OAI 部署私有的 4G EPS
    Ubuntu Snap 简述
    OAI SDR LTE 基站部署
    企业文化二三谈
    OpenStack 的 SR-IOV 虚拟机热迁移
    在 ThinkPad E470 上安装 Ubuntu 16.04 无线网卡驱动
    读写可编程 SIM/USIM 卡
    4G LTE/EPC UE 的附着与去附着
    4G EPS 的网络协议栈
    Java- 类型转换
  • 原文地址:https://www.cnblogs.com/pocket-mood/p/4456052.html
Copyright © 2020-2023  润新知