두 개의보기 컨트롤러간에 변경하고 싶습니다. 두 ViewController는 모두 CenterViewController에서 상속받습니다. 아래의 코드는 스택에 하나 개의 ViewController (CertificatenViewController)를 추가하는 것입니다ViewController 바꾸기
centerViewController = CertificatenViewController(nibName: "CertificatenViewController", bundle: nil)
centerViewController.delegate = self
centerNavigationController = UINavigationController(rootViewController: centerViewController)
view.addSubview(centerNavigationController.view)
addChildViewController(centerNavigationController)
centerNavigationController.didMoveToParentViewController(self)
이가있는 viewDidLoad에서 일어나는과 같은 클래스에 내가보기로드되어야하는 확인하는 switch 문이, 이런 식으로 뭔가 :
switch menuItem.getNibname() {
case "CertificatenViewController":
print(menuItem.getNibname())
centerViewController = CertificatenViewController(nibName: menuItem.getNibname(), bundle: nil)
centerViewController.delegate = self
case "SettingsViewController":
print(menuItem.getNibname())
centerViewController = SettingsViewController(nibName: menuItem.getNibname(), bundle: nil)
centerViewController.delegate = self
default: break
}
정확히 어떤 문제인지는 모르겠지만보기가 다시로드되지 않는 것으로 보입니다. 나는 popViewControllerAnimated 시도했지만이 작동하지 않습니다. 이 문제를 해결할 수 있도록 도와주세요.
는 해결 방법 :
view.addSubview(centerNavigationController.view)
addChildViewController(centerNavigationController)
centerNavigationController.didMoveToParentViewController(self)
그냥 그 코드를 제거 :
func changeView(menuItem: MenuItem){
self.centerNavigationController.viewControllers.removeAll()
switch menuItem.getNibname() {
case "CertificatenViewController":
print(menuItem.getNibname())
self.centerNavigationController.pushViewController(self.centerViewController, animated: false)
case "SettingsViewController":
print(menuItem.getNibname())
self.centerNavigationController.pushViewController(self.settingsViewController, animated: false)
case "MessagesViewController":
print(menuItem.getNibname())
self.centerNavigationController.pushViewController(self.messagesViewController, animated: false)
default: break
}
}
두 개의 View Controller간에 ** 변경 **이란 무엇을 의미합니까? 다음 뷰 컨트롤러를 밀거나 모달로 표시하려는 경우 올바르지 않은 작업입니다. 아래의 해답은 View Controller를 표현하는 방법을 보여줍니다. –