回答
请按以下步骤操作。
将VC1作为mainVC的childVC添加VC1 &。
在段1个选择
VC1.view.hidden = false
&vc2.view.hidden = true
在段2选择
VC2.view.hidden = false
&vc1.view.hidden = true
采取参考
代码工作
@IBAction func indexChanged(_ sender: AnyObject) {
switch segmentedControl.selectedSegmentIndex
{
case 0:
vc1.view.hidden = false
vc2.view.hidden = true
case 1:
vc2.view.hidden = false
vc1.view.hidden = true
default:
break
}
}
你能解释更详细的abuot吗?我的朋友。 –
检查更新的消息。 –
您应该添加VC,以及vc.view到主视图控制器:
当您选择分段控制,你可以隐藏子视图控制器的视图如下:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
_vc1 = [sb instantiateViewControllerWithIdentifier:@"ViewController1"];
_vc2 = [sb instantiateViewControllerWithIdentifier:@"ViewController2"];
[self addChildViewController:_vc1];
[self addChildViewController:_vc2];
[self.view addSubview:_vc1.view];
[self.view addSubview:_vc2.view];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)segAction:(UISegmentedControl *)sender {
if (1 == sender.selectedSegmentIndex) {
NSLog(@"1");
_vc1.view.hidden = YES;
_vc2.view.hidden = NO;
}else {
NSLog(@"%ld", sender.selectedSegmentIndex);
_vc2.view.hidden = YES;
_vc1.view.hidden = NO;
}
}
接受的答案显然是正确的,但我真的更喜欢使用UISegmentedControl中每个选项卡的容器视图。这样,与每个视图相关的逻辑就会在不同的视图控制器中分离。您可以以这种方式实现这一目标:
class TopViewController: UIViewController {
@IBOutlet weak var firstContainerView: UIView!
@IBOutlet weak var secondContainerView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
firstContainerView.alpha = 1.0
secondContainerView.alpha = 0.0
}
@IBAction func didChangeIndex(_ sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0:
firstContainerView.alpha = 1.0
secondContainerView.alpha = 0.0
case 1:
firstContainerView.alpha = 0.0
secondContainerView.alpha = 1.0
default:
break
}
}
}
如果您想访问FirstViewController或SecondViewController的特性,可以实现prepare(for segue: UIStoryboardSegue, sender: Any?)
方法。
- 1. 切换视图控制器
- 2. 使用分段控制在2个视图之间切换
- 3. 使用分段控制在UITabBar选项卡中切换视图
- 4. 从子视图控制器切换到父视图控制器 - iOS
- 5. 使用用户界面切换外部视图分段控制器
- 6. IIViewDeckController切换视图 - 控制
- 7. 使用视图控制器子视图
- 8. 分段控制切换滚动视图中的图像iphone
- 9. Objective-C切换视图控制器
- 10. 在视图控制器之间切换
- 11. 高效切换视图控制器
- 12. UInavigation控制器不工作切换视图控制器到tableviewcontroller
- 13. 采用分段控制切换的tableView
- 14. 分段控制子视图从扩展
- 15. 自定义分段控制不切换视图
- 16. 从一个UITableView控制器切换到视图 - 控制
- 17. 使用分段控制器使用两个容器视图
- 18. 切换视图不会切换角度控制器
- 19. iPhone:两个UItableView;分段控制切换
- 20. 使用一个IBAction切换回主视图控制器
- 21. 如何使用PKRevealController切换前视图控制器?
- 22. 使用代码切换视图控制器
- 23. 分段控制改变时更改视图控制器
- 24. 关闭父视图控制器和子视图控制器
- 25. 分割视图控制器必须是根视图控制器
- 26. 子视图控制器
- 27. 多视图控制器的视图之间切换
- 28. 子视图控制器通知根视图控制器加载另一个子视图控制器
- 29. 视图控制器分离
- 30. 如何使用分段控件切换或加载不同的表格视图
在这里你需要去tabbar控制器 –
@ Anbu.Karthik我可以使用子视图控制器做到这一点吗? –
@qg_java使用'Containerview',请查看本教程中关于它的内容。https://spin.atomicobject.com/2015/09/02/switch-container-views/或者这一个https:// cocoacasts。 com /管理视图控制器与容器视图控制器/ –