네 개의 ViewController가 NavigationController에 연결되어 있습니다. 그들 순서는 1-> 2-> 3-> 4입니다. 사용자가 4에서 뒤로 버튼을 누르면 3 대신 2로 리다이렉트하고 싶습니다. 동시에, 뒤로 버튼을 눌러도 사용자가 2로 돌아가도록 할 수 있습니다. 3 . 이것이 가능한가? 미리 감사드립니다.Swift - NavigationController에서 viewcontroller를 제거하는 방법은 무엇입니까?
답변
물론이 작업을 수행 할 수 있습니다. 4 번째 ViewController에서 왼쪽 바 버튼을 생성하기 만하면됩니다. 그 버튼 액션에 당신은 탐색 스택의 컨트롤러를 확인할 수 있습니다 제 2의 ViewController
if let viewcontroller = self.navigationController?.viewControllers[1] where viewcontroller.isKindOfClass(YourController) {
self.navigationController?.popToViewController(viewcontroller, animated: false) }
Swift3의 작은 변경 사항 : viewcontroller를 허용하면 = self.navigationController? .viewController [1], viewcontroller는 YourViewController입니다. let _ = self.navigationController? .popToViewController (viewcontroller, animated : false)} –
감사합니다! 그것은 효과가 있었다. 나는 절대적인 초보자이기 때문에 또 다른 질문 : 이것을 어떻게 뒤로 버튼에 할당합니까? UIBarButtonSystemItems 목록을 살펴 보았지만 다시 사용할 수있는 단추가없는 것 같습니다. – qunayu
on 네 번째 viewcontroller viewDidload self.navigationItem.leftBarButtonItem = UIBarButtonItem (이미지 : 이미지, 스타일 : .Plain, target : self, action : #selector (self.back (_ :)) 및 액션 함수 backButtonAction (보낸 사람 : AnyObject) { if viewcontroller = self.navigationController? .viewControllers [1] 어디에서 viewcontroller.isKindOfClass (YourController) { self.navigationController? .popToViewController (viewcontroller, animated : false)} } – Sahil
if let vc = self.viewControllerWithClass(YourVC.self) {
self.popToViewController(vc, animated: true)
}
extension UINavigationController {
func viewControllerWithClass(_ aClass: AnyClass) -> UIViewController? {
for vc in self.viewControllers {
if vc.isMember(of: aClass) {
return vc
}
}
return nil
}
}
에 팝업.
let controllers = navigationController!.viewControllers.reverse()
for controller in controllers
{
if controller.isKindOfClass(YourController)
{
self.navigationController?.popToViewController(controller, animated: true)
return
}
}
- 1. navigationController에서 닫을 때 ViewController를 건너 뛸 수 있습니까?
- 2. Swift - APNS 메시지를 수신하고 타겟 Viewcontroller를 클릭하십시오.
- 3. String Swift 3에서 문자를 제거하는 방법은 무엇입니까?
- 4. NavigationController에서 TabBarController로 이동
- 5. viewcontroller를 닫은 후 AVPlayer를 중지하고 superview에서 제거하는 방법은 무엇입니까?
- 6. NavigationController에서 BackButton을 활성화/추가하는 방법은 무엇입니까?
- 7. ViewController를 보았지만 다른 ViewController를 Pop - 3D Touch - Swift
- 8. navigationcontroller에서 로고 이미지 제거
- 9. NavigationController에서 rootViewController 재설정
- 10. 탐색 컨트롤러 스택에서 모든 ViewController를 제거하는 가장 좋은 방법은
- 11. NavigationController에서 UIToolBar가 사라지는 이유는 무엇입니까?
- 12. TabbarController의 NavigationController에서 UIViewController 강제 회전
- 13. 런타임에 Viewcontroller를 숨기는 방법은 무엇입니까?
- 14. 특정보기로 viewController를 푸시하는 방법은 무엇입니까?
- 15. ViewController를 강제로 언로드하는 방법은 무엇입니까?
- 16. Swift - UIPageViewController는 항상 두 번째 ViewController를 반복합니다.
- 17. Swift - 팝업 viewcontroller를 시작하는 앱 내 딥핑
- 18. Swift : ViewController를 인스턴스화 할 때 XIB로드
- 19. 3d touch swift 3이 viewcontroller를 열지 않습니다.
- 20. 컨테이너 viewController를 사용하지 않고 ViewController를 전환하는 가장 좋은 방법은 무엇입니까?
- 21. navigationController에서 서브 뷰 간 전환?
- 22. PageViewController에서 ViewController를 추가 및 제거하는 방법
- 23. 재생할 때 메모리에서 레벨 1을 제거하는 방법은 무엇입니까?
- 24. Swift 문자열에서 "비 분리 공간"을 제거하는 방법은 무엇입니까?
- 25. IOS Swift 3의 원형 차트 섹션에서 텍스트를 제거하는 방법은 무엇입니까?
- 26. Swift 2.2에서 일본어가 아닌 공백을 제거하는 방법은 무엇입니까?
- 27. swift : 문자열을 분할하고 첫 번째 요소를 제거하는 방법은 무엇입니까?
- 28. NavigationController에서 int 전달하기
- 29. Navigationcontroller에서 navigation.phtml까지의 변수
- 30. Swift IOS 앱은 View 및 ViewController를 어디에서 인스턴스화합니까?
긴급 풀림을 사용하십시오. 비슷한 대답이 많이 있습니다. 여기에 [하나] (http://stackoverflow.com/q/24029586/5099208) – Idan
만약 당신이 신속한 대답을 원한다면이 하나 봐 http://stackoverflow.com/questions/31878108/ios-swift-poptoviewcontroller -by-name –
unwigged segue 사용 http://stackoverflow.com/questions/12561735/what-are-unwind-segues-for-and-how-do-you-use-them – Cruz