iOS中的视图跳转的三种方式(代码跳转,根据桥跳转,按钮跳转)

#import "ViewController.h"
#import "SecondViewController.h"
@interface ViewController ()
@property (retain, nonatomic) IBOutlet UITextField *textField;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)pushButtonAction:(id)sender {

    //跳转第一种方式
//    SecondViewController *secondVC = [[SecondViewController alloc] init];
//    [self.navigationController pushViewController:secondVC animated:YES];
    //1.当要获取的视图控制器对象和当前视图控制器在同一个storyboard文件中
    //从 storyboard 获取对应的视图控制器对象
    //self.storyboard 获取当前视图控制器所在的 storyboard对象
    /*
   SecondViewController *secondVC = [self.storyboard instantiateViewControllerWithIdentifier:@"second"];
    [self.navigationController pushViewController:secondVC animated:YES];
      //2.当要获取的视图控制器对象和当前视图控制器在同一个storyboard文件中
    //1.先创建storyboard对象
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Leo" bundle:nil];

    //假设,另外一个storyboard的名字是Leo.stroyboard
    //(2)从对应的storyboard中根据标识符,获取视图控制器对象
    SecondViewController *second = [storyboard instantiateViewControllerWithIdentifier:@"reuse"];
    //然后再push 即可
     */
    //跳转第二种,根据桥跳转
    //[self performSegueWithIdentifier:@"reuse" sender:nil];

    //跳转第三种方式
    //直接将按钮与下一个界面建桥即可,不用写任何代码,但是该方法只有一个弊端,因为这种方法为单个按钮单独定制的跳转,如果一个界面中有多个按钮都要跳转到这一个界面,还需要增加多个桥,这样的话,关系非常的冗杂,不如直接通过第二种方式(视图控制器与视图控制器之间建桥,让多个button点击方法实现跳转即可)

}
//通过桥(segue)完成页面的跳转,在跳转之前该方法就会出触发,一般用于传值.
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    //获取下个界面的对象
   SecondViewController *secondVC = segue.destinationViewController;
    //传值
    secondVC.data = self.textField.text;

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)dealloc {
    [_textField release];
    [super dealloc];
}
@end
SecondViewController.h

#import <UIKit/UIKit.h>

@interface SecondViewController : UIViewController
@property (nonatomic, copy) NSString *data;
@end

SecondViewController.m

#import "SecondViewController.h"

@interface SecondViewController ()
@property (retain, nonatomic) IBOutlet UILabel *aLable;

@end

@implementation SecondViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.aLable.text = self.data;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)dealloc {
    [_aLable release];
    self.data = nil;
    [super dealloc];
}
@end
时间: 2024-08-01 22:43:09

iOS中的视图跳转的三种方式(代码跳转,根据桥跳转,按钮跳转)的相关文章

Velocity中加载vm文件的三种方式

Velocity中加载vm文件的三种方式: a.  加载classpath目录下的vm文件 Properties p = new Properties(); // 加载classpath目录下的vm文件 // 这里是加载模板VM文件,比如:/META-INF/template/Web_B2CPayment.vm(请参考mas_spring_integration.xml) p.setProperty("file.resource.loader.class", "org.apa

转 Velocity中加载vm文件的三种方式

Velocity中加载vm文件的三种方式 velocitypropertiespath Velocity中加载vm文件的三种方式:   方式一:加载classpath目录下的vm文件 Properties p = new Properties(); p.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); Ve

PHP 页面跳转的三种方式

第一种方式:header() header()函数的主要功能是将HTTP协议标头(header)输出到浏览器. 语法: void header ( string $string [, bool $replace = true [, int $http_response_code ]] ) 可选参数replace指明是替换前一条类似标头还是添加一条相同类型的标头,默认为替换. 第二个可选参数http_response_code强制将HTTP相应代码设为指定值. header函数中Location类

Web开发中获取Spring的ApplicationContext的三种方式

在 WEB 开发中,可能会很少需要显示的获得 ApplicationContext 来得到由 Spring 进行管理的某些 Bean, 今天我就遇到了,在这里和大家分享一下, WEB 开发中,怎么获取 ApplicationContext 一       要想怎么获取 ApplicationContext, 首先必须明白 Spring 内部 ApplicationContext 是怎样存储的.下面我们来跟踪一下源码 首先:从大家最熟悉的地方开始 Java代码   <listener> <

github项目解析(八)--&gt;Activity启动过程中获取组件宽高的三种方式

转载请标明出处:一片枫叶的专栏 上一个github小项目中我们介绍了防止按钮重复点击的小框架,其实现的核心逻辑是重写OnClickListener的onClick方法,添加防止重复点击的逻辑,即为第二次点击与第一次点击的时间间隔添加阙值,若第二次点击的时间间隔与第一次点击的时间间隔小于阙值,则此次点击无效,再次基础上我们又封装了点击组件验证网络Listener,点击组件验证是否登录Listener等,具体可参考:github项目解析(七)–>防止按钮重复点击 本文中我将介绍一下android中A

拼图游戏中逆序数的实现的三种方式

一.定义 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数.如2431中,21,43,41,31是逆序,逆序数是4. 二.计算方法 逆序数的计算方法主要有直接计算,归并和树状数组三种,下面将一一介绍. 2.1 直接计算 即根据定义用枚举的方法求逆序数.对于数列中的每一个数a[i],遍历数列中的数a[j] (其中j < i),若a[i] < a[j],则逆序数加1,这样就能统计出该数列的逆序数总和. 该方

Android合并文件的三种方式代码

amr格式的文件头是6字节,在进行文件合并的时候要减去除第一个文件以外的其他文件的文件头.下面介绍合并文件的几种方式,并通过合并amr文件来举例介绍合并文件的具体流程. 注意:不同文件的文件头是不一样的,所以在合并的时候根据不同文件相应的减去合并文件的文件头.具体你可以学习Android开发教程. 步骤一:获取要合并的文件及创建合并后保存的文件 /**用于存放要合并的文件的集合**/List<File>tempFiles=new ArrayList<File>();/**合并之后的

javaweb中加载外部文件的三种方式

1.request.getSession().getServletContext().getResourceAsStream("/WEB-INF/classes/a.txt""); / 相对对于项目的根路径 2.getClass().getClassLoader().getResourceAsStream("/a.txt") / 不管有没有'/' 都相对于classpath路径(/WEB-INF/classes/) 3.getClass().getReso

Android中WebView的JavaScript代码和本地代码交互的三种方式

一.Android中WebView的漏洞分析 最近在开发过程中遇到一个问题,就是WebView使用的时候,还是需要解决之前系统(4.2之前)导致的一个漏洞,虽然现在这个系统版本用户很少了,但是也不能忽视,关于这个漏洞,这里就不多做解释了,可能有的同学早就了解了,本来想写一篇文章详细介绍一下,但是网上的知识太多了,而且都很详细,就没弄了,这里大致简单明了的说几句: 第一.漏洞产生的原因 这个漏洞导致的原因主要是因为Android中WebView中的JS访问本地方法的方式存在缺陷,我们做过交互的都知