`
dcj3sjt126com
  • 浏览: 1867058 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

两个ViewController间传值(一)

    博客分类:
  • IOS
 
阅读更多

IOS中,在两个ViewController之间传值有多种方式,这里学习其中一种,利用临时变量在两个ViewController之间传值,这可能不是最好的传值方式,但是也是一种选择。

首先看看工程结构:


其中ViewController是第一个界面,SecondViewController是第二个界面,UserEntity为一个实体对象,用来作为在两个界面间传值的媒介。

接下来看看最后实现的效果:

                            

在第一个界面输入完毕后,点击“传值“按钮就可以跳转到第二个界面,并显示在第一个界面中输入的值,按顶部的Back按钮则返回第一个界面。

下面来看看实现中的关键代码;

单击”传值“按钮时触发的代码:

 

  1. - (IBAction)passValueButton:(id)sender {  
  2.     //构建UserEntity对象  
  3.     UserEntity *userEntity = [[UserEntity alloc] init];  
  4.     userEntity.userName = self.userNameTextFiled.text;  
  5.     userEntity.gendar = self.gendarTextField.text;  
  6.     userEntity.age = [self.ageTextField.text intValue];  
  7.       
  8.     SecondViewController *secondView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:[NSBundle mainBundle]];  
  9.     //设置SecondViewController中的值  
  10.     secondView.userEntity = userEntity;  
  11.     //跳转界面  
  12.     [self presentModalViewController:secondView animated:YES];  
  13.       
  14.     [userEntity release];  
  15.     [secondView release];  
  16. }  


在第二个界面显示传过来值的方法:

 

 

  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.       
  5.     //显示从前一个界面传过来的值  
  6.     self.userNameTextField.text = self.userEntity.userName;  
  7.     self.gendarTextField.text = self.userEntity.gendar;  
  8.     //NSString转换为int型  
  9.     self.ageTextField.text = [NSString stringWithFormat:@"%d",self.userEntity.age];  
  10.       
  11. }  


以上就实现了一个简单的在两个ViewController之间传值的方式,下一次将使用代理模式在两个ViewController之间进行传值。

 

源码下载地址:源码下载

分享到:
评论

相关推荐

    使用Delegate在两个ViewController间传值

    本篇将详细介绍如何在两个ViewController之间利用委托协议进行值传递,以及它与Android中`onActivityResult`方法的相似之处。 首先,我们需要理解什么是委托协议。在Objective-C或Swift中,委托是一种设计模式,...

    IOS实现在两个ViewController间传值(一)

    当你在Storyboard中创建了一个segue连接两个ViewController时,可以在`prepareForSegue:`方法中传递数据: ```objc - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue....

    ios实现viewcontroller切换传值的三种方法

    首先,定义一个协议,该协议包含你希望在两个ViewController之间传递的属性或方法。然后,让接收值的ViewController成为发送值的ViewController的代理。在发送值的ViewController中,当需要传递数据时,通过代理协议...

    两个controller相互传值

    标题“两个controller相互传值”和描述“iOS实现在两个ViewController间传值”都指向了这个核心主题。在这个场景下,我们可以使用两种主要的方法:协议(Protocol)传值和控制器(Controller)传值。下面我们将详细...

    ByValueTwoViewController-iOS:2个ViewController直接传值的方式事例

    在两个ViewController间,我们可以创建一个Block属性在第二个ViewController中,然后在第一个ViewController中设置这个Block并传递数据。当需要传递数据时,直接执行Block,这样数据就会在Block的执行上下文中被处理...

    IOS 20个实用例子.zip

    -- 使用Delegate在两个ViewController间传值 -- 内存泄露Demo leaky app -- iOS上拉加载更多的实现 -- iOS视频通话/直播demo -- 数据库操作(使用FMDB) -- iOS图文混排(模仿新浪微博) -- IOS高仿微信聊天对话界面 -...

    ios 通过delegete委托 在两个界面进行传值

    "ios 通过delegete委托 在两个界面进行传值"这个标题涉及的关键知识点是使用委托(Delegate)协议来实现在多个界面之间的数据传递。下面将详细介绍这一过程,并给出实际操作步骤。 首先,我们需要理解什么是委托...

    普通传值正向传值

    我们将深入探讨这两个概念,并通过实际应用示例来阐述它们的工作原理。 首先,我们来看“普通传值”。普通传值通常指的是在程序的不同组件之间直接传递基本数据类型(如整型、浮点型、字符串等)或者对象实例。这在...

    iOS通过block在两个页面间传值的方法

    在iOS应用开发中,数据传输是常见的操作,而使用Block(闭包)可以在两个页面间进行灵活且简洁的值传递。Block相比于传统的Delegate(代理)和NSNotification(通知)方式,具有更加直观和易于理解的特性。本文将...

    逆向传值之通知传值

    通过创建两个模拟的ViewController,实现数据从B到A的传递,可以加深对Notification理解和应用。 总之,逆向传值通过Notification实现,允许视图控制器间灵活的数据通信,尤其适用于不希望或无法建立强引用关系的...

    ios-block逆传值页面间的.zip

    在"blockValuePage"这个示例中,可能包含了两个页面:一个是发起传值的页面(可能是ViewControllerA),另一个是接收并返回值的页面(可能是ViewControllerB)。在ViewControllerA中,我们可能会创建一个Block,并将...

    页面间跳转和传值

    2. **模态视图控制器(Present Modally)**: 另一种方式是模态展示,通过presentViewController方法,可以全屏显示一个新的视图控制器,通常用于显示对话框、设置或者临时内容。 3. **页面控制器(Page View ...

    故事模式导航传值

    5. **Model Objects**:如果数据属于模型对象的一部分,可以直接在模型对象中存储,两个ViewController都可以访问同一个模型对象,实现数据共享。 在"NavigationDemo"这个项目中,我们可以预期看到如何通过...

    iOS 代理传值简单demo

    这可能包括一个`.h`(Objective-C)或`.swift`(Swift)文件,定义了代理协议和相应的接口,以及两个视图控制器的实现,一个是发送值的,另一个是接收值的。通过阅读和分析这些代码,初学者可以深入理解代理工作原理...

    iOS swift3.0 导航页的相互传值

    在iOS应用中,导航控制器(UINavigationController)是一个关键组件,它管理着一系列的视图控制器(UIViewController),通过堆栈的方式进行切换,通常以一个导航栏(navigationBar)的形式呈现。在这样的导航结构中...

    ios两视图间委托(delegate)传值

    现有两个视图(ViewController,ViewController1),从ViewController中带参数跳转到ViewController1,在ViewController1选中数据后带有效数据后退到ViewController中,委托实现上述功能。 可以参考:...

    实体类传值

    "实体类传值"是将对象或数据从一个视图控制器(ViewController)传递到另一个视图控制器的一种常见方式。在这个过程中,我们通常会涉及到变量的创建、赋值以及在不同类之间的共享。本篇文章将深入探讨实体类传值和...

    iphone 解决键盘遮挡和view传值的一个小例子

    在iOS开发中,我们经常会遇到两个常见的问题:一是键盘弹出时遮挡了屏幕下方的输入框,导致用户无法看到正在输入的内容;二是不同View之间的数据传递,这在多个界面间进行信息交互时尤为重要。本篇文章将通过一个...

    代理传值 简单实现

    在标题“代理传值 简单实现”和描述“这是UITextField 和 UILabel之间的简单传值”中,我们关注的是如何通过代理协议来实现在这两个UI组件之间传递数据。代理模式是Objective-C和Swift中常见的一种设计模式,用于...

    导航器传值Demo

    2. **模型对象(Model Object)**:将共享数据封装在一个模型对象中,两个VC都可以访问。 3. **NSUserDefault**:用于存储用户偏好设置,也可以临时存储较小量的数据。 4. **单例(Singleton)**:创建一个全局可...

Global site tag (gtag.js) - Google Analytics