zoukankan      html  css  js  c++  java
  • 控制器跳转小常识

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

     

    一般三种方式进行跳转: 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。

  • 相关阅读:
    关于MAC下重置MYSQL密码
    MAC下配置PHPStorm环境
    Java中从控制台输入数据的几种常用方法
    IDEA 指定入口class
    Python中的除法
    Python 学习笔记
    SQLiteDatabase中query、insert、update、delete方法参数说明
    listview与sqlite数据绑定
    java中HashMap详解
    只要有信心,人永远不会挫败
  • 原文地址:https://www.cnblogs.com/pocket-mood/p/4456052.html
Copyright © 2011-2022 走看看