我的导航控制器导航栏上有一个 UISegmentControl ,我已经将UIViewController设置为导航控制器的rootViewController。现在我有两个其他的UITableViewControllers,当用户选择UISegmentControl时我需要在它之间切换。
我设置了
[rootViewController.view addSubview:firstTableView.view]
当我处理segmentcontrol值更改事件时,我像这样设置另一个表视图控制器
[rootViewController.view removeFromSubview];
[rootViewcontroller.view addSubview:secondTableView.view];
[segmentControl setEnabled:YES forSegmentAtIndex:segmentControl.selectedSegmentIndex];
但是当段控件切换到第二个表视图时,什么都没有!只是空白。
谁能告诉我怎么做?
答案 0 :(得分:1)
为了将viewcontroller添加为子视图,您可以这样做:
[rootViewController.view addSubview:firstTableView.view];
[rootViewController addChildViewController:firstTableView];
删除它:
[firstTableView.view removeFromSuperview];
[firstTableView removeFromParentViewController];
[rootViewcontroller.view addSubview:secondTableView.view];//now you can add second tableviewcontoller
[rootViewController addChildViewController:secondTableView];
答案 1 :(得分:1)
-viewDidLoad()
{
[ self.view addSubview: firstTableView] ;
firstTableView.hidden = yes;
[ self.view addSubview: secondTableView] ;
secondTableView.hidden = yes;
}
-(IBAction) segmentAction:(id)sender
{
UISegmentedControl* control = sender ;
if( [control selectedSegmentIndex] == 0 )
{
firstTableView.hidden = no;
secondTableView.hidden = yes;
}
if( [control selectedSegmentIndex] == 1 )
{
firstTableView.hidden = yes;
secondTableView.hidden = no;
}
}