【问题标题】:Time to set a property to pass it to another viewController是时候设置一个属性以将其传递给另一个 viewController
【发布时间】:2016-05-22 05:57:44
【问题描述】:

我有 tableViewController 类并想将属性传递给另一个视图控制器。

我声明了我的财产,

@property (strong, nonatomic) NSIndexPath *selection;

在协议tableView:didSelectRowAtIndexPath: 中,我想将我的selection 值设置为选中的indexPath

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    // change your selection property
    [self setSelection:indexPath];
}

我想通过 prepareForSegue:sender:selection 传递给目标视图控制器

if ([segue.identifier isEqualToString:@"updateItem"]) {
        UINavigationController *navController = (UINavigationController *)[segue destinationViewController];
        UpdateViewController *viewController = (UpdateViewController *)[navController topViewController];

        [viewController setManagedObjectContext:self.managedObjectContext];

        NSManagedObject *record = [self.fetchResultsController objectAtIndexPath:self.selection];
        if (self.selection) {
            [viewController setRecord:record];
        }

        // reset selection
        [self setSelection:nil];
    }

我的问题是,我在目标视图控制器上对该属性进行 NSlog-ing,并且第一次显示为 null。其次,它显示为第一个,依此类推。它显示了我之前设置的内容。

那么我是否错过了在属性进入另一个视图控制器目标之前设置属性的概念?请让我知道这一点。任何帮助,将不胜感激。非常感谢。

【问题讨论】:

  • 你在哪里分配'selection'
  • 我没有分配“选择”。只需在我的私有接口中将其声明为属性,然后在我的 didSelectAtIndex 协议中进行设置。
  • @RohitKP 我应该分配初始化“选择”吗?
  • 你能显示日志代码吗?
  • 在 viewDidLoad 的目标控制器中 > NSLog(@"Content: %@", [self.record valueForKey:@"name"]); @MaximSysenko

标签: ios objective-c uitableview segue


【解决方案1】:

我终于找到了答案。我搞砸了如何触发segue。 prepareForSegue 先于 didSelectRowAtIndexPath 运行。

请参考this,我们应该使用prepareForSeguedidSelectRowAtIndexPath。所以我决定通过获取它的indexPathForSelectedRow 将我的selection 设置为prepareForSegue

[self setSelection:[[self tableView] indexPathForSelectedRow]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多