2017-03-27 6 views
1

5 개의 탭 (및 UITabBarController)이있는 애플리케이션이 있습니다. 사용자가 버튼 등을 클릭 할 때 표시 될 수있는 뷰 컨트롤러가 더 많습니다. 지금 바로 첫 번째 탭에서보기 컨트롤러를 푸시하려고합니다. 다음 코드를 사용할 때 새로운보기 컨트롤러는 탭 막대와 이전보기 컨트롤러를 완전히 대체하므로 표시되는 유일한보기 컨트롤러는 새 것이므로 되돌릴 방법이 없습니다. 나는 또한 시도했다보기 컨트롤러를 UITabBarController에 푸시하는 데 어려움이 있습니다.

@objc func openSettingsPage() { 
let vc = UIStoryboard(name: "SettingsPage", bundle: nil).instantiateViewController(withIdentifier: "Settings") as! SettingsViewController 
self.tabBarController?.show(vc, sender: self) 

} : 그 일을 할 때

let vc = UIStoryboard(name: "SettingsPage", bundle: nil).instantiateViewController(withIdentifier: "Settings") as!  SettingsViewController 
self.navigationController?.pushViewController(vc, animated: true) 

아무런 변화가 없습니다 여기에 내 코드입니다. print (self.navigationcontroller)는 "nil"을 출력하므로보기 컨트롤러가 탐색 컨트롤러에 내장되어 있어도 탐색 컨트롤러를 찾지 못합니다.

+0

당신은 제안에 대한 감사 @Mannopson 탭 표시 줄 컨트롤러의 선택 뷰 컨트롤러 – Mannopson

+0

에서보기 컨트롤러를 밀어 수 있습니다,하지만, 난 여전히 같은 문제가있어 - 내가 시작을 밀어있어 뷰 컨트롤러를 전체 화면을 덮어서 내 응용 프로그램으로 돌아갈 수 없습니다. –

+0

위 제안을 시도 했습니까? 그리고 뷰 컨트롤러를 밀어 넣지 마십시오. 먼저 설정보기 컨트롤러를 탐색 컨트롤러에 포함시키고 모달로 표시합니다. 또한 설정 컨트롤러가 아닌 탐색 컨트롤러를 제시하십시오 – Mannopson

답변

0

탭을 전환하려면 Tabbar Controller, Tabbar.selectedIndex = (선택하려는 탭의 인덱스)를 사용하십시오.

원하는 것은 스택에 뷰 컨트롤러를 밀어 넣는 것이지만 탭바에 표시하는 것입니다. 사용이 ->

self.navigationController.push(viewController: (your view controller), animated: true) 
+0

그렇게 할 때 아무런 변화가 없습니다. print (self.navigationcontroller)는 "nil"을 출력하므로 분명히 내가 코드를 작성하고있는 뷰 컨트롤러가 탐색 컨트롤러에 내장되어 있어도 탐색 컨트롤러를 찾지 못한다. –