テーブルビューコントローラにセグメントがあります。
segmentIndex =0->tableViewが読み込まれます->タップします。別のtableViewControllerに移動します。segmentIndex =1->tableViewが読み込まれます->タップします。別のtableViewControllerに移動します。
テーブルビューの切り替えは正常に行われます。問題は、戻った後、前のインデックス値を覚えておく必要があることです。それを実装する方法は?私の現在のコード:
- viewWillAppear
self.segment=[[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Nominals",@"Coinage",nil]];
[self.segment setFrame:CGRectMake(80, 0, 200, 30)];
[self.segment setSegmentedControlStyle:UISegmentedControlStyleBar];
//self.segment.selectedSegmentIndex=0;
[self.segment addTarget:self action:@selector(segmentValueChaged:) forControlEvents:UIControlEventValueChanged];
[[self navigationItem] setTitleView:self.segment];
-(IBAction)segmentValueChaged:(id)sender
{
switch (self.segment.selectedSegmentIndex)
{
case 0:
{
DBAccess *access=[[DBAccess alloc]init];
self.items=[access returnNominals:self.subCountryID nk:fromPeriod];
[access closeDataBase];
self.tableView.hidden=NO;
[self.tableView reloadData];
self.segmentIndex=0;
break;
}
case 1:
{
DBAccess *access=[[DBAccess alloc]init];
self.coinageArr=[access returnCoinage:fromPeriod period:subCountryID];
self.tableView.hidden=NO;
[self.tableView reloadData];
self.segmentIndex=1;
break;
}
}
}
よろしくお願いします。
編集:
self.segment=[[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Nominals",@"Coinage",nil]];
[self.segment setFrame:CGRectMake(80, 0, 200, 30)];
[self.segment setSegmentedControlStyle:UISegmentedControlStyleBar];
if(!self.segmentIndex)
{
self.segment.selectedSegmentIndex=-1;
}
else
{
self.segment.selectedSegmentIndex=self.segmentIndex;
}
//self.segment.selectedSegmentIndex=self.segmentIndex;
[self.segment addTarget:self action:@selector(segmentValueChaged:) forControlEvents:UIControlEventValueChanged];
[[self navigationItem] setTitleView:self.segment];
-(void)viewWillDisappear:(BOOL)animated
{
switch (self.segment.selectedSegmentIndex)
{
case 0:
{
self.segmentIndex=0;
break;
}
case 1:
{
self.segmentIndex=1;
break;
}
}
}