如何将值从一个视图传递到另一个视图? (苹果手机)

时间:2010-03-11 14:04:59

标签: iphone objective-c

例如,我有一个文本字段,记录用户名,单击按钮后,它将显示下一个视图,我想要下一个视图ge文本字段数据,并显示在第二个视图中,如何我能这样做吗?

4 个答案:

答案 0 :(得分:5)

听起来你没有遵守MVC惯例。

如果您有一组单独的“模型”类,只保存数据,您的第一个视图将使用文本视图中的更改(当您离开或离开视图时)更新它。 第二个视图将从模型中获取其数据 - 因此它将获得更新的字段。

如果您有多个视图同时引用同一模型“实时”,您可能还需要查看key-value coding

答案 1 :(得分:2)

作为一般规则,您需要创建视图控制器的属性以接收将填充其视图的数据。因此,假设您的文本字段是属性,您可以写:

myViewController.text_field.text

其中myViewController是您要向用户显示的视图控制器。

答案 2 :(得分:0)

text_field.text
以任何你喜欢的方式

到第二个视图

答案 3 :(得分:0)

这是一个很好的例子,说明如何从Apple将一个变量(使用MVC)从一个控制器(细节)传递到下一个(编辑)。

CoreDataBooks Example

在详细视图中(将Book传递给EditingViewController):

 EditingViewController *controller = [[EditingViewController alloc] initWithNibName:@"EditingView" bundle:nil];

        controller.editedObject = book;
         ...

        [self.navigationController pushViewController:controller animated:YES];
        [controller release];

在编辑视图(EditingViewController)中:

- (IBAction)save {
    ...
        [editedObject setValue:datePicker.date forKey:editedFieldKey];
        [editedObject setValue:textField.text forKey:editedFieldKey];
    }

    [self.navigationController popViewControllerAnimated:YES];
}