回答
請按以下步驟操作。
將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. 切換視圖控制器
- 3. 使用分段控制在2個視圖之間切換
- 4. 使用分段控制在UITabBar選項卡中切換視圖
- 5. 無法在2視圖控制器與分段控件之間切換
- 6. 從子視圖控制器切換到父視圖控制器 - iOS
- 7. 使用分段控件切換採集視圖
- 8. 使用分段控制推視圖控制器
- 9. 使用用戶界面切換外部視圖分段控制器
- 10. IIViewDeckController切換視圖 - 控制
- 11. 使用視圖控制器子視圖
- 12. 分段控制切換滾動視圖中的圖像iphone
- 13. Objective-C切換視圖控制器
- 14. 在視圖控制器之間切換
- 15. 高效切換視圖控制器
- 16. StoryBoard - 視圖控制器如何切換?
- 17. UInavigation控制器不工作切換視圖控制器到tableviewcontroller
- 18. 採用分段控制切換的tableView
- 19. 分段控制子視圖從擴展
- 20. 在單一視圖控制器中切換多個視圖控制器iOS
- 21. iOS:在當前模態視圖控制器後面切換視圖控制器?
- 22. 自定義分段控制不切換視圖
- 23. 從一個UITableView控制器切換到視圖 - 控制
- 24. 使用分段控制器使用兩個容器視圖
- 25. 切換視圖不會切換角度控制器
- 26. 切換NavigationItem標題與分段控制
- 27. iPhone:兩個UItableView;分段控制切換
- 28. 如何在Swift上切換兩個子視圖控制器?
- 29. 如何使用PKRevealController切換前視圖控制器?
- 30. 使用一個IBAction切換回主視圖控制器
在這裏你需要去tabbar控制器 –
@ Anbu.Karthik我可以使用子視圖控制器做到這一點嗎? –
@qg_java使用'Containerview',請查看本教程中關於它的內容。https://spin.atomicobject.com/2015/09/02/switch-container-views/或者這一個https:// cocoacasts。 com /管理視圖控制器與容器視圖控制器/ –