2015-12-18 51 views
0

所以我遇到的問題是我有一個CollectionView,根據index加載不同的數據。例如,如果我在index 0,第一個cell是「帽子」,我切換到index 1,第一個cell是「外套」。問題是,如果我點擊「大衣」,然後點擊Back button ......它顯示了這件大衣,但我們確實還在「帽子」上。如果你點擊「外套」,它會提出「帽子」的細節。在收集視圖之前更改另一個視圖控制器的SegmentedControl索引重裝

我之前解決了類似的問題,只需按下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更改該索引的代碼。或者,如果這不起作用,只需要重新加載整個視圖即可。

回答

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"]]; 

與Switch:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 

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

不工作。首先它不會讓我做self.segmentedControl,因爲它表示在類型UserView上找不到對象。所以如果我加載它如上面在我的問題中所示,然後做segmentedControl而不是self.segmentedControl ...然後它不顯示錯誤...但它也不起作用。 –

相關問題