버튼 클릭으로 사용자를 페이지로 보냅니다. 이 페이지는 UITableViewController 입니다.
이제 사용자가 셀을 탭하면 이전 페이지로 다시 밀고 싶습니다.
나는 비슷한 것에 대해 생각 self.performSegue("back")....
했지만 이것은 나쁜 생각 인 것 같습니다.
올바른 방법은 무엇입니까?
답변
스위프트 3 :
이전 뷰 컨트롤러로 돌아가려면
_ = navigationController?.popViewController(animated: true)
루트 뷰 컨트롤러로 돌아가려면
_ = navigationController?.popToRootViewController(animated: true)
답변
스위프트 3 , 스위프트 4
if movetoroot {
navigationController?.popToRootViewController(animated: true)
} else {
navigationController?.popViewController(animated: true)
}
navigationController는 선택 사항이 아니므로 선택 사항입니다.
답변
스위프트 3
나는 대답에 늦었을 수도 있지만 신속한 3의 경우 다음과 같이 할 수 있습니다.
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "< Back", style: .plain, target: self, action: #selector(backAction))
// Do any additional setup if required.
}
func backAction(){
//print("Back Button Clicked")
dismiss(animated: true, completion: nil)
}
답변
스위프트 4
이전 ViewController로 돌아가거나 되 돌리는 두 가지 방법이 있습니다.
- 첫 번째 경우 사용한 경우 :
self.navigationController?.pushViewController(yourViewController, animated: true)
이 경우에 당신이 필요로 사용self.navigationController?.popViewController(animated: true)
- 두 번째 경우 사용한 경우 :
self.present(yourViewController, animated: true, completion: nil)
이 경우에 당신이 필요로 사용self.dismiss(animated: true, completion: nil)
첫 번째 경우 스토리 보드의 navigationController에 ViewController를 내장했는지 확인하십시오.
답변
당신이 제시하는 경우 UIViewController
내에서 UIViewController
즉 ..
// Main View Controller
self.present(otherViewController, animated: true)
간단히 dismiss
함수를 호출하십시오 .
// Other View Controller
self.dismiss(animated: true)
답변
스위프트 5 이상
사례 1 : 내비게이션 컨트롤러와 함께 사용
self.navigationController?.popViewController(animated: true)
사례 2 : 현재보기 컨트롤러와 함께 사용
self.dismiss(animated: true, completion: nil)
답변
Segue가 ‘Show’또는 ‘Push’종류이면 UINavigationController의 인스턴스에서 “popViewController (animated : Bool)”을 호출 할 수 있습니다. 또는 segue가 “present”인 경우 UIViewController의 인스턴스로 “dismiss (animated : Bool, complete : (()-> Void)?)”를 호출하십시오.