在collectionview重新加载

时间:2015-12-18 11:43:12

标签: ios objective-c uiviewcontroller segmentedcontrol

所以我遇到的问题是我有CollectionView根据index加载不同的数据。例如,如果我在index 0并且第一个cell是"帽子"我切换到index 1,第一个cell是"外套"。问题是如果我点击"外套"然后点击Back button ...它显示了外套,但我们仍然真的在"帽子"。如果你点击"外套"它将提供"帽子的详细信息。

我之前解决了一个类似的问题,只需在按下CollectionView时重新加载back button ......但这次似乎并没有起作用。所以我想要做的是确保在重新加载之前将segmented control index设置为0

这是我迄今为止从Hat / Coat detailview获得的内容:

UserViewController *userVC = [[UserViewController alloc] init];
[userVC.collectionView reloadData];

以下是segmented controlUserViewController的代码:

HMSegmentedControl * segmentedControl = [[HMSegmentedControl alloc] initWithFrame:CGRectMake(0, 280, 600, 50)];
[segmentedControl setSelectedSegmentIndex:0];

我无法找出从detail view更改该索引的代码。或者,如果那不起作用,只需让它重新加载整个视图。

1 个答案:

答案 0 :(得分:0)

您可以使用NSUserDefaults。

在AppDelegate中:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

if ([userDefaults objectForKey:@"segmentedControlIndex"] == nil) {
    [userDefaults setInteger:0 forKey:@"segmentedControlIndex"];
}

在viewWillAppear函数中:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

[self.segmentedControl setSelectedSegmentIndex:[userDefaults integerForKey:@"segmentedControlIndex"]];

在开关上:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

[userDefaults setInteger:self.segmentedControl.selectedSegmentIndex forKey:@"segmentedControlIndex"];