3

탭 기반 응용 프로그램에서 탭 중 하나를 클릭 할 때 일부 정보가있는 모달보기 컨트롤러를 표시하려고합니다. 내 응용 프로그램 대리인의 didSelectViewController 메서드에서 모달보기를 추가하고 있습니다. 그러나 전체 화면을 차지하고 탭 막대를 숨 깁니다. 나는 탭바를 숨기고 싶지 않고 튀어 나오고 해제 될 수있는 모달 뷰를 보여주고 싶다.모달보기 컨트롤러가 탭 막대를 숨 깁니다.

어떻게해야합니까?

도와주세요.

미리 감사드립니다.

답변

2

secondViewController이 두 번째 TabBar의에 대한 두 번째의 ViewController 경우, 당신은 다음과 같이 수행해야합니다

아이폰 OS에서

[secondViewController.view addSubview:theViewYouWantToShow];

4

모달보기 컨트롤러는 항상 iPhone에서 전체 화면으로 표시됩니다. 탭 표시 줄을 숨기고 싶지 않으면 모달 외에 다른 방법으로이보기를 표시해야합니다. 예를 들어

1

, 모달 뷰 컨트롤러는 사용 가능한 모든 뷰 컨트롤러에서 가장 높은 우선 순위를 가지고 항상. 그렇다면 모달 뷰 컨트롤러를 사용할 수 없습니다.

화면에 팝업 표시를 원하면 UIAlertView을 사용하면됩니다. 경고보기를 제거하는 요구 사항에 따라 OK 또는 CANCEL 버튼을 추가 할 수 있습니다.

또는

당신은 탭 표시 줄 가시성과 전체보기를 표시하려면

후 하위 뷰 등의 해당 탭에서보기를 추가 할 수 있습니다. 보기의 속성을 사용하여 팝업과 같은 느낌을 줄 수 있습니다.

1

PresentationStyle을 설정하여 모달로 표시 할 수 있습니다.이 스타일은 viewController를 사각형으로 표시하며 전체 화면을 차지하지 않습니다. .currentContextmodalPresentationStyle을 설정하여

self.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
2

I가 "현재"새 뷰 컨트롤러, 다른 이상 , UNDER 탭 표시 줄 수 있었다 : 또한 전환을 설정할 수 있습니다

self.modalPresentationStyle = UIModalPresentationFormSheet; 

.

let newViewController = UIViewController() 
newViewController.view.backgroundColor = UIColor.red 
newViewController.modalPresentationStyle = .currentContext 
newViewController.modalTransitionStyle = UIModalTransitionStyle.flipHorizontal 
present(newViewController, animated: true, completion: nil) 

편집 : newViewController 제시하는 동안 누군가가 탭을 변경하면 더 많은 테스트에서, 위의 몇 가지 버그가 행동을 할 수 있습니다.

가 나는 "스위처"창조 "해결"하기 - 내가 탭 표시 줄에 의거 플립 할 뷰 컨트롤러 사이에 애니메이션을 UIViewController :이 경우

view.addSubview(nextView) 
      UIView.transition(from: currentView, 
           to: nextView, 
           duration: 0.5, 
           options: animation, 
           completion: { (_) in 
       currentView.removeFromSuperview() 
      }) 

currentView는의도이다 ViewControllerOne (현재 보이는 것)이고 nextView은 ViewControllerTwo (우리가 제시하고자하는 것)의 뷰입니다.