IOS中,在两个ViewController之间传值有多种方式,这里学习其中一种,利用临时变量在两个ViewController之间传值,这可能不是最好的传值方式,但是也是一种选择。
首先看看工程结构:
其中ViewController是第一个界面,SecondViewController是第二个界面,UserEntity为一个实体对象,用来作为在两个界面间传值的媒介。
接下来看看最后实现的效果:
在第一个界面输入完毕后,点击“传值“按钮就可以跳转到第二个界面,并显示在第一个界面中输入的值,按顶部的Back按钮则返回第一个界面。
下面来看看实现中的关键代码;
单击”传值“按钮时触发的代码:
- - (IBAction)passValueButton:(id)sender {
- //构建UserEntity对象
- UserEntity *userEntity = [[UserEntity alloc] init];
- userEntity.userName = self.userNameTextFiled.text;
- userEntity.gendar = self.gendarTextField.text;
- userEntity.age = [self.ageTextField.text intValue];
- SecondViewController *secondView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:[NSBundle mainBundle]];
- //设置SecondViewController中的值
- secondView.userEntity = userEntity;
- //跳转界面
- [self presentModalViewController:secondView animated:YES];
- [userEntity release];
- [secondView release];
- }
在第二个界面显示传过来值的方法:
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- //显示从前一个界面传过来的值
- self.userNameTextField.text = self.userEntity.userName;
- self.gendarTextField.text = self.userEntity.gendar;
- //NSString转换为int型
- self.ageTextField.text = [NSString stringWithFormat:@"%d",self.userEntity.age];
- }
以上就实现了一个简单的在两个ViewController之间传值的方式,下一次将使用代理模式在两个ViewController之间进行传值。
源码下载地址:源码下载
相关推荐
本篇将详细介绍如何在两个ViewController之间利用委托协议进行值传递,以及它与Android中`onActivityResult`方法的相似之处。 首先,我们需要理解什么是委托协议。在Objective-C或Swift中,委托是一种设计模式,...
当你在Storyboard中创建了一个segue连接两个ViewController时,可以在`prepareForSegue:`方法中传递数据: ```objc - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue....
首先,定义一个协议,该协议包含你希望在两个ViewController之间传递的属性或方法。然后,让接收值的ViewController成为发送值的ViewController的代理。在发送值的ViewController中,当需要传递数据时,通过代理协议...
标题“两个controller相互传值”和描述“iOS实现在两个ViewController间传值”都指向了这个核心主题。在这个场景下,我们可以使用两种主要的方法:协议(Protocol)传值和控制器(Controller)传值。下面我们将详细...
在两个ViewController间,我们可以创建一个Block属性在第二个ViewController中,然后在第一个ViewController中设置这个Block并传递数据。当需要传递数据时,直接执行Block,这样数据就会在Block的执行上下文中被处理...
-- 使用Delegate在两个ViewController间传值 -- 内存泄露Demo leaky app -- iOS上拉加载更多的实现 -- iOS视频通话/直播demo -- 数据库操作(使用FMDB) -- iOS图文混排(模仿新浪微博) -- IOS高仿微信聊天对话界面 -...
"ios 通过delegete委托 在两个界面进行传值"这个标题涉及的关键知识点是使用委托(Delegate)协议来实现在多个界面之间的数据传递。下面将详细介绍这一过程,并给出实际操作步骤。 首先,我们需要理解什么是委托...
我们将深入探讨这两个概念,并通过实际应用示例来阐述它们的工作原理。 首先,我们来看“普通传值”。普通传值通常指的是在程序的不同组件之间直接传递基本数据类型(如整型、浮点型、字符串等)或者对象实例。这在...
在iOS应用开发中,数据传输是常见的操作,而使用Block(闭包)可以在两个页面间进行灵活且简洁的值传递。Block相比于传统的Delegate(代理)和NSNotification(通知)方式,具有更加直观和易于理解的特性。本文将...
通过创建两个模拟的ViewController,实现数据从B到A的传递,可以加深对Notification理解和应用。 总之,逆向传值通过Notification实现,允许视图控制器间灵活的数据通信,尤其适用于不希望或无法建立强引用关系的...
在"blockValuePage"这个示例中,可能包含了两个页面:一个是发起传值的页面(可能是ViewControllerA),另一个是接收并返回值的页面(可能是ViewControllerB)。在ViewControllerA中,我们可能会创建一个Block,并将...
2. **模态视图控制器(Present Modally)**: 另一种方式是模态展示,通过presentViewController方法,可以全屏显示一个新的视图控制器,通常用于显示对话框、设置或者临时内容。 3. **页面控制器(Page View ...
5. **Model Objects**:如果数据属于模型对象的一部分,可以直接在模型对象中存储,两个ViewController都可以访问同一个模型对象,实现数据共享。 在"NavigationDemo"这个项目中,我们可以预期看到如何通过...
这可能包括一个`.h`(Objective-C)或`.swift`(Swift)文件,定义了代理协议和相应的接口,以及两个视图控制器的实现,一个是发送值的,另一个是接收值的。通过阅读和分析这些代码,初学者可以深入理解代理工作原理...
在iOS应用中,导航控制器(UINavigationController)是一个关键组件,它管理着一系列的视图控制器(UIViewController),通过堆栈的方式进行切换,通常以一个导航栏(navigationBar)的形式呈现。在这样的导航结构中...
现有两个视图(ViewController,ViewController1),从ViewController中带参数跳转到ViewController1,在ViewController1选中数据后带有效数据后退到ViewController中,委托实现上述功能。 可以参考:...
"实体类传值"是将对象或数据从一个视图控制器(ViewController)传递到另一个视图控制器的一种常见方式。在这个过程中,我们通常会涉及到变量的创建、赋值以及在不同类之间的共享。本篇文章将深入探讨实体类传值和...
在iOS开发中,我们经常会遇到两个常见的问题:一是键盘弹出时遮挡了屏幕下方的输入框,导致用户无法看到正在输入的内容;二是不同View之间的数据传递,这在多个界面间进行信息交互时尤为重要。本篇文章将通过一个...
在标题“代理传值 简单实现”和描述“这是UITextField 和 UILabel之间的简单传值”中,我们关注的是如何通过代理协议来实现在这两个UI组件之间传递数据。代理模式是Objective-C和Swift中常见的一种设计模式,用于...
2. **模型对象(Model Object)**:将共享数据封装在一个模型对象中,两个VC都可以访问。 3. **NSUserDefault**:用于存储用户偏好设置,也可以临时存储较小量的数据。 4. **单例(Singleton)**:创建一个全局可...