StoryBoard 页面传值

如图新建一个viewController和DetailViewController

VC 和DetailVC 联线的Idetnifier 设置为:GoDetailVC

ViewController主要代码
- (IBAction)signInButtonTouched:(id)sender {
   [self performSegueWithIdentifier:@"GoDetailVC" sender:self];
}

#pragma mark - prepare segue
// A页面传值到B页面
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    [super prepareForSegue:segue sender:sender];
    if ([segue.identifier isEqualToString:@"GoDetailVC"]) {
        DetailViewController *detailVC = segue.destinationViewController;
        detailVC.passValue = self.usernameTextField.text;
    }
}

// B页面传值到A页面
-(IBAction)done:(UIStoryboardSegue *)segue{
    if ([segue.sourceViewController isKindOfClass:[DetailViewController class]]) {
        DetailViewController * svc = (DetailViewController *)segue.sourceViewController;
        self.passwordTextField.text = svc.textField.text;
    }
}

在StoryBoard中 DetailViewController的Done按钮 Action关联到 viewController的done方法 如图

1.在VC页面中第一个textField中输入值 点击 Sing in 按钮就会把值传到DetailViewController 的textField中显示出来。

2.在DetailViewController textField中修改值 点击Done 按钮就会把值回传到ViewController中

如果 是Present 方式要怎么传值勒。如图

用如下代码肯定传值行不通- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    [super prepareForSegue:segue sender:sender];
    if ([segue.identifier isEqualToString:@"GoDetailVC"]) {
        DetailViewController *detailVC = segue.destinationViewController;  // 因为这取出来的是NavigationController 不是DetailViewController
detailVC.passValue = self.usernameTextField.text; } }

所以修改为如下:
// A页面传值到B页面
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    [super prepareForSegue:segue sender:sender];
    if([[segue identifier] isEqualToString:@"GoDetailVC"])
    {
        NSArray *viewControllerArray = [segue.destinationViewController viewControllers];
        DetailViewController *detailVC = [viewControllerArray objectAtIndex:0];
        detailVC.passValue = self.usernameTextField.text;
    }
}
时间: 2024-10-14 09:31:22

StoryBoard 页面传值的相关文章

swift详解之二十二-----------UINavigationController的基本用法和页面传值几种方式

UINavigationController的基本用法和页面传值几种方式 本文介绍UINavigationController基本用法,因为涉及多页面顺便介绍页面传值 1.手写代码创建UINavigationController 手写方式创建很简单 , 首先创建一个项目 , 默认是从storyboard 加载的.这时候首先去掉默认加载方式 . 然后在AppDelegate.swift 的didFinishLaunchingWithOptions 中创建 代码如下: func applicatio

ios 页面传值

今天看了一下ios 页面传值的方式大致分为四种: 代理delegate block 通知 单例class 今天试了一下前三种,在这里记录一下 下面示例是有两个页面,每个页面都有一个按钮Button,点击第一个页面的按钮回调到第二个页面,再点击第二个页面回跳转道第一个页面,第一个按钮的标题变为第二个按钮传回的值. 代理delegate 代理似乎是我的心结,能用API 但是就是不会自己写,这也是今天会写传值的原因. 假设两个页面传值,协议类应该写在哪,代理应该定义在那个页面? 总结的时候我觉得可以这

05-19Web端控件,页面传值

一.记忆Web端控件需要配合HTML 中的Form表单元素 1.Label 会被编译成span标签 属性: Text:文本内容 CssClass:CSS样式 Enlabled:是否可用 Visible:是否可见 2.Literal 空的,C#会把里面的Text内容直接作为网页代码传过去,比如Text里面写上<input type="button" />会直接在网页中插入一个按钮 属性: Text:内容 文本类 文本框      <input type="te

Web端控件,页面传值

一.记忆Web端控件需要配合HTML 中的Form表单元素 Label - 在HTML中被编译成<span> Literal - 在HTML中被编译成空 文本类 文本框      <input type="text">                        TextBox 密码框      <input type="password">                 TextBox 属性TextMode="pa

webform 页面传值的方法总结

ASP.NET页面之间传递值的几种方式 页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookies,Application,Server.Transfer. 一.QueryString QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法.但是对于

C#--父子页面传值、刷新(showModalDialog)

父页面: 1 var obj = new Object(); 2 obj.name="name"; 3 var rtnValue=window.showModalDialog("child.aspx",obj,"dialogWidth:500px;dialogHeight:300px;status:no;scrollbars=yes;help:no"); 4 if(rtnValue=="ok"){ 5 window.locat

webform(六)内置对象 跨页面传值

内置对象跨页面传值有六种:Request,Response,Session,Cookie,Application,VIewState. 一.Request和ResponseRequest request请求对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息.客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后通过request对象的相关方法来获取这些数据.request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项.response 响应对象在

在alert里面加入一个页面,子页面传值父页面

把easyDialog v2.0这个插件加入到了项目中,在做选择部门功能时运用这个插件,在easyDialog.open里面的content函数中套了一个iframe标签,把部门页面的地址放入到src中 <iframe id="iframe" src="<%=basePath %>admin/login/deptno" frameborder="no" border="0" height="240&

前端跨页面传值

在很多时候需要用到跨页面传值,但是通过后台取值,这些值又不用放到后台去,所以没这必要而且增加http请求,这种情况下用前端跨页面传值就非常方便了 1.通过路径传值 用URL记录传值  <a href='Specific.aspx?idStr=val1&name=name1&sex=sex1</a> 在跳转页面后 通过下面方式取到路径,再把值分离出来var url = window.location.href; alert(url);因为url后面的?不会影响连接指向,所以