0

可能重复:
在 didSelectRowAtIndexPath 之前调用 viewDidLoad

我正在尝试将变量传递给新视图。我有以下代码:

appDelegate *dataCenter = (AppDelegate*)[[UIApplication sharedApplication] delegate];

dataCenter.myVariable = [array objectAtIndex:indexPath.row];

在里面

didSelectRowAtIndexPath

的调用视图。但是,我遇到的问题是该变量在下一个视图的 vewDidLoad 函数中为空,仅仅是因为它在调用视图的 didSelectRowAtIndexPath 之前触发了。我正在使用故事板将视图链接在一起。两者都是 UITableView。

如果我回击然后重新选择它然后设置的表格元素,那么当我回击然后再次选择时,变量就被设置了。有什么办法可以确定执行顺序吗?我真的不想在后端进行 UI 视图切换。

任何帮助是极大的赞赏!

4

1 回答 1

1

如何在 didSelectRowAtIndexPath 将数据保存到 NSUserDefaults,然后在 viewDidLoad 从 NSUserDefaults 读取保存的数据。

-(void) didSelectRowAtIndexPath {
    NSUserDefaults *infoSaved = [NSUserDefaults standardUserDefaults];
    [infoSaved setObject:myVariable forKey:@"myvariable"];
    [infoSaved:synchronize];

    // then call the new view to load
}

在加载的新视图中:

-(void) viewDidLoad {
    NSUserDefaults *infoSaved = [NSUserDefaults standardUserDefaults];
    myVariable = [infoSaved objectForKey:@"myvariable"];

    // and use your variable
}

希望有帮助

于 2012-11-11T23:07:15.930 回答