하위 컨트롤을 세그먼트 컨트롤에서 전환하고 싶습니다.subviewController 전환 세그먼트 화 된 컨트롤을 사용
스토리 보드에는 vc1과 vc2가 있으며, 메인 VC의 탐색 컨트롤러 바에 세그먼트 컨트롤이 있습니다.
주 vc에서 vc1과 vc2를 추가하고 싶습니다. 어떻게 서브 컨트롤러를 전환할까요? 세그먼트 컨트롤러를 사용합니까?
어떻게 그와 함께 할까?하위 컨트롤을 세그먼트 컨트롤에서 전환하고 싶습니다.subviewController 전환 세그먼트 화 된 컨트롤을 사용
스토리 보드에는 vc1과 vc2가 있으며, 메인 VC의 탐색 컨트롤러 바에 세그먼트 컨트롤이 있습니다.
주 vc에서 vc1과 vc2를 추가하고 싶습니다. 어떻게 서브 컨트롤러를 전환할까요? 세그먼트 컨트롤러를 사용합니까?
어떻게 그와 함께 할까?아래 단계를 따르십시오.
VC2를 mainVC의 childVC로 추가하십시오. VC1 & VC2를 mainVC의 childVC로 추가하십시오.
세그먼트1 개 선택 세그먼트 VC1.view.hidden = false
& vc2.view.hidden = true
VC2.view.hidden = false
& vc1.view.hidden = true
이 기준을 가지고 2 선택
코드 작업
@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를 추가한다 메인의 ViewController에 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의 각 탭에 컨테이너보기를 사용하는 것이 좋습니다. 이렇게하면 각 뷰와 관련된 로직이 다른 뷰 컨트롤러에서 분리됩니다. 당신은 그런 식으로이를 달성 할 수 있습니다 당신이 FirstViewController 또는 SecondViewController의 속성에 액세스하려는 경우, 당신은 prepare(for segue: UIStoryboardSegue, sender: Any?)
방법을 구현할 수
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
}
}
}
.
여기에서 탭바 컨트롤러 –
@ Anbu.Karthik에 가야합니다. 하위보기 컨트롤러를 사용하여이를 수행 할 수 있습니까? –
@qg_java'Containerview'를 사용하여이 튜토리얼을 정확히 확인하십시오. https://spin.atomicobject.com/2015/09/02/switch-container-views/ 또는 https : // cocoacast를 찾으십시오. co.kr/manage-view-controllers-with-container-view-controllers/ –