在重新加载集合视图之前,更改另一个视图控制器的SegmentedControl索引



所以我遇到的问题是,我有一个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];

这是UserViewControllersegmented 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"];

相关内容

  • 没有找到相关文章

最新更新