나는 (하단 메뉴가있는) 탭 막대 컨트롤러와 최상위 메뉴가 있습니다. 문제는 노란색과 녹색보기를 탭 막대에 연결하지 않으려한다는 것입니다. 사용자가 아래 메뉴가 아닌 최상위 메뉴를 사용하여보기를 변경하기 때문입니다.탐색 스택에 이미있는보기 컨트롤러 표시
버튼을 클릭 할 때마다 뷰의 새 인스턴스가 스택 될 것입니다. (따라서 V1 -> V2 -> V3 -> V2 -> V4와 같은 것을 갖게됩니다.
내 부분적인 해결책 이런 식으로 뭔가를 만드는 것입니다)에 :
@IBAction func yellowViewButtonAction(_ sender: AnyObject)
{
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "YelloViewController") as! YelloViewController
if let viewControllers = navigationController?.viewControllers {
for viewController in viewControllers {
// some process
if viewController is YelloViewController {
print("View is on stack")
}
}
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "YelloViewController") as! YelloViewController
self.navigationController?.pushViewController(controller, animated: false)
}
}
나는 for
내부의 if
문 true
때문에보기가 탐색 스택에있는 것을 볼 수 있습니다. 문제는 동일한 뷰의 새 인스턴스를 푸는 대신에 어떻게 검색 할 수 있습니까? (왜냐하면이 거대한 기억 문제 외에 내가보기에 가지고있는 어떤 데이터도 잃어 버리기 때문이다).
스택의 모든 내용을 그대로 유지하려고합니다.
예 :
V1 -> V2 -> V3 -> V4 (현재보기)
나는 여전히 탐색 컨트롤러에 V4, V3 및 V2를 갖고 싶어 V4에서 V1로 돌아갈 경우 스택.
또 다른 질문은이 해결책이 애플이 거절 할 수있는 것이라면 말입니다.
감사합니다. 사용 및 탐색 컨트롤러를 필요로하지 않는 것처럼
나는 내가 노란색 및 녹색 뷰를 누르면 다음 난 아직 바닥 바 메뉴를 볼 수 있기 때문에 탐색 컨트롤러를 필요합니까. 내가보기를 그대로 유지하겠다고 말했듯이, 내가 팝업을하면보기의 모든 데이터가 손실됩니다. – Adrian
하단 메뉴 막대를 보려면 탐색 컨트롤러가 필요 없습니다. 링크의 튜토리얼을 보시면 알 수 있습니다 :) 또한 뷰 컨트롤러의 '내부'상태가 그대로 유지되도록 필자가 제공 한 코드는 뷰만 이동합니다. – repoguy
내가 말하고자하는 것은 내가 이미 하나 있기 때문에 사용자 정의 하단 메뉴 막대를 원하지 않는다는 것입니다. 내비게이션 컨트롤러 스택에있는 뷰 사이를 바꿀 수 있어야합니다. – Adrian