【问题标题】:XCODE 6 pass object from child to parent view controller in storyboardXCODE 6 在情节提要中将对象从子视图控制器传递到父视图控制器
【发布时间】:2014-10-27 05:00:20
【问题描述】:

我是 xcode ios 编程的新手,我有 2 个表视图控制器,我想将对象从子控制器传递给父控制器。如果从父级传递给子级很容易,但是在选择子视图中的一行后,我找不到将对象从子级传回父级控制器的简单方法。

注意:*searchFieldController是父控制器

父头文件

@interface ProductSearchFieldTableViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate>

@property(strong, nonatomic) NSString *selectedMake;

@end

父实现文件

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    // Configure the cell...
    NSDictionary *field= [self.fields objectAtIndex:indexPath.row];
    NSString *name=[field objectForKey:@"name"];
    if([name isEqualToString: @"make"]){
        [self performSegueWithIdentifier:@"valueSeque" sender:self];
    }
}

子工具文件

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    ProductSearchFieldTableViewController *searchFieldController = [ProductSearchFieldTableViewController alloc];
    searchFieldController.selectedMake =[[fields objectAtIndex:indexPath.row] objectForKey:@"value"];

    [self.navigationController popViewControllerAnimated:YES];   
}

【问题讨论】:

  • 在子控制器中创建父控制器的属性并通过其引用使用。
  • 这是一种通常使用委托协议的情况。
  • 您正在创建 ProductSearchFieldTableViewController 的新实例,而不是访问您的父级。此外,您不应该查看 parentViewController 因为这不是您的情况。您应该按照@rdelmar 的建议实现一个委托
  • 谢谢我使用委托方法:)

标签: ios xcode xcode6


【解决方案1】:

StackOverflow 上已经有很多关于这个问题的答案。

一些回答你问题的链接:

How to Pass Data Back

Passing Data between View Controllers

【讨论】:

    猜你喜欢
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 2014-09-12
    • 2014-08-14
    • 2020-04-01
    • 1970-01-01
    相关资源
    最近更新 更多