所以我遇到的问题是,我有一个CollectionView
,它根据index
加载不同的数据。例如,如果我在index 0
,第一个cell
是"hat",而我切换到index 1
,第一个cell
是"coat"。问题是如果我点击"外套",然后点击Back button
。。。它显示了外套,但我们真的还戴着"帽子"。如果你点击"外套",它会显示"帽子"的细节。
我之前解决了一个类似的问题,只需在按下back button
时重新加载CollectionView
。。。但这一次似乎不起作用。因此,我想做的是确保在重新加载之前将segmented control index
设置为0
。
以下是我迄今为止从帽子/外套detailview
:
UserViewController *userVC = [[UserViewController alloc] init];
[userVC.collectionView reloadData];
这是UserViewController
中segmented control
的代码:
HMSegmentedControl * segmentedControl = [[HMSegmentedControl alloc] initWithFrame:CGRectMake(0, 280, 600, 50)];
[segmentedControl setSelectedSegmentIndex:0];
我不太清楚从detail view
中更改索引的代码。或者,如果这不起作用,就让它重新加载整个视图。
您可以使用NSUserDefaults。
在AppDelegate中:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if ([userDefaults objectForKey:@"segmentedControlIndex"] == nil) {
[userDefaults setInteger:0 forKey:@"segmentedControlIndex"];
}
在视图中WillAppear功能:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[self.segmentedControl setSelectedSegmentIndex:[userDefaults integerForKey:@"segmentedControlIndex"]];
打开开关:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setInteger:self.segmentedControl.selectedSegmentIndex forKey:@"segmentedControlIndex"];