0

我对核心数据有一个小问题。我将跳过代码,因为它工作正常。我只需要知道在 prepareForSeague 方法中要做什么。

应用程序有 2 个视图 - ViewControllerA 和 TableViewControllerB。在 TableViewControllerB 中,我使用带有单元格标识符的自定义单元格设置了表格视图:customCell。我按下按钮 ADD,它显示 2 行的警报视图。警报视图向实体添加 2 个属性,这些属性显示在表格单元格中。实体称为 SOMEentity,而属性是名称(NSString)和值(也称为 NSString)。

视图控制器 A 有两个文本字段:TextFieldA 和 TextFieldB,一个按钮计算和一个名为 calculateLabel 的标签。计算按钮只是从 textFields 中添加值。

现在我想这样做 - 单击单元格将在 TextFieldA 中显示属性值。

我必须在里面做什么

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
{
if ([[segue identifier] isEqualToString:@"FromViewBToViewA"]) {
}
}

另外,我是否必须在 ViewControllerA 的 viewDidLoad 方法中写一些东西?所有字符串和标签都具有非原子的强属性。

谢谢!

4

3 回答 3

0

您需要在目标 UIViewController 中创建一个属性,并在 prepareForSegue:sender: 方法中设置值,如下所示:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NextViewController *nvc = [segue destinationViewController];
    [nvc setEntity:@"MyEntity"]; //for example
}
于 2013-09-14T13:51:31.913 回答
0
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
{
    if ([[segue identifier] isEqualToString:@"FromViewBToViewA"]) {
        ViewControllerA * dest = (ViewControllerA*)segue.destinationViewController;
        dest.property1 = @"Some property value";
        dest.property2 = @"Some property value";
    }
}

抓住目标控制器将其转换并传入预期值。然后在您的目标控制器中。确保在 ViewControllerA 的标头中包含 property1 和 property2 作为属性

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:YES];
    //Set your text view values with your configured properties from the segue.
} 
于 2013-09-25T14:34:07.003 回答
0

在第二个 viewController 上创建一个属性,即您想要将对象传递到的那个。然后在 prepareForSegue:sender: 方法中设置 destinationViewController 上的属性(即您要设置对象的那个)。请记住将其转换为您自己的子类。正如您在 prepareForSegue:sender: 方法中不知道哪个单元格是被点击的单元格一样,您需要将对选定对象的引用存储在属性或 ivar 中。您可以使用 NSIndexPath 在方法 'tableView:didSelectRowAtIndexPath:' 中获取该对象。

接下来,在现在具有该属性的 viewController 的 viewWillAppear: 方法中,使用该属性更新 textField。

于 2013-09-14T13:55:21.897 回答