블록 팝 액션이
if changesMade {
let alertController = UIAlertController(title: "Alert", message: "Changes made are not saved. Do you wish to save changes made?", preferredStyle: .alert)
let cancelOption = UIAlertAction(title: "Cancel", style: .cancel)
let saveOption = UIAlertAction(title: "Save", style: .default, handler: { (action) in
self.saveSession()
self.navigationController?.popViewController(animated: true)
})
alertController.addAction(saveOption)
alertController.addAction(cancelOption)
present(alertController, animated: true)
}
업데이트와 같은 저장되지 않습니다 - 사용자 정의 버튼 등 부모보기 컨트롤러 에서 추진되고있는 자식보기 컨트롤러의 행동 이하이 추가 조건을 만족시키지 않고 사용자가 자식에서 부모로 다시 이동할 수 없음
내비게이션 backButton의 동작을 사용자 정의하려면 아래 라인을 사용하여 뒤로 버튼을 수동으로 추가해야합니다. 여기에 추가되는 barButton을 사용자 정의 할 수 있습니다 DidLoad에
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.backToInitial(sender:)))
이 필요한 작업
@objc func backToInitial(sender: AnyObject) {
if changesMade {
let alertController = UIAlertController(title: "Alert", message: "Changes made are not saved. Do you wish to save changes made?", preferredStyle: .alert)
let cancelOption = UIAlertAction(title: "Cancel", style: .cancel)
let saveOption = UIAlertAction(title: "Save", style: .default, handler: { (action) in
self.saveSession()
self.navigationController?.popViewController(animated: true)
})
alertController.addAction(saveOption)
alertController.addAction(cancelOption)
present(alertController, animated: true)
}
}
을 수행하고이 그것을
을 수행 할 수있는 방법을 설계대로 난 당신이 탐색 컨트롤러의 버튼 액션 작업을 다시 기본값으로 중지 할 수 있습니다 생각하지 않는다 하지만 예 ViewWillDisappear에서 관리 할 수 있습니다.
override func viewWillDisappear(_ animated: Bool) {
if self.isMovingFromParentViewController || self.isBeingDismissed {
self.navigationController?.popViewController(animated: false) //here task but will not result as Expected output
}
}
------ ----------- Re-Update ---------------
신속 함 예상대로 출력하기 위해 objective-C 클래스를 사용했습니다. childViewController https://github.com/RockinGarg/NavigationBackButton.git
코드보기에서 super.viewWillDisappear (animated)를 시도해보십시오.보기가 불규칙 해지면 모든 값이 deinit으로 이동하기 때문입니다. 내 추측에 따라 –
왜보기 컨트롤러를 팝업하려고하기 전에 변경되었는지 확인하지 마십시오. '즉시, 팝 동작을 차단 버튼을 다시 숨기거나 그렇게 사용자가 작업을 수행 할 수 wan't 비활성화 할 때 알고있는 경우 changesMade { showAlert() } 다른 { dismissVC() 가}' –
이 완 경우 '팝. –