私にとっては少し混乱していますが、私は非常に小さな間違いを犯していると確信しています。私を正しい方向に導いてください。以下がその様子です。
2 つのセグメントを持つ OneViewController があります。Segment1はデフォルトで選択されているため、Segment1のコードはOneViewController(tableviewControllerではなく、tableViewを表示したいので手動でコードを記述したい)で記述されているため、すでに機能しています。セグメント 2 をクリックすると、別の tableViewController (TwoTableViewController というクラスを作成したもの) を表示する必要があります。そして、両方の tableView が同じビューに表示されるようにしたい (新しいビューをプッシュしない)。最も重要なことは、セグメント化されたコントロールが消えないようにすることです。
コードの関連部分も添付しました。以前にも同様の質問をしたことは知っていますが、本当に混乱していたので、最初からやり直すことにしました。私が許されることを願っています!:)
コードは次のとおりです。
-(void)viewDidLoad
{
//has the elements I want to display when I click on segment 1. since it is already selected , I have written it here
}
-(IBAction) segmentedControlChanged
{
switch(segmentedControl.selectedSegmnentIndex)
{
case 0:
//default first index selected.
[tableView setHidden:NO];
if(self.view viewWithTag==9999]{
[[self.view viewWithTag:9999]removeFromSuperView];
}
break;
case 1:
NewTableViewController *controller=[[NewTableViewController alloc] initWithNibName:@"NewTableViewController" bundle:nil];
[controller.view setTag:9999];
break;
default:
break;
}
}
NewTableViewController には個別のメソッドがあり、データソースとデリゲートは IB で TableView に設定されています。やりたいことは、Segment2 をクリックしたときにこの NewTableViewController を呼び出すことだけです。