UINavigationController 기반 iPhone 앱에서 메서드에서 뒤로 버튼을 누르고 뷰로 돌아가는 것과 같은 프로그래밍 방식을 수행하고 싶습니다.
즉, 여기에 표시된대로 작업 버튼을 자동으로 누릅니다.
일반 iOS 전화를 걸 수 있습니까? 아니면 추가 정보가 필요합니까?
답변
UINavigationController
의 -popViewControllerAnimated:
메서드는 원하는 작업을 수행해야합니다.
[navigationController popViewControllerAnimated:YES];
답변
실제로 버튼을 프로그래밍 방식으로 누르지 않고 단순히 버튼을 누른 결과를 복사하고 싶지 않다고 가정하면 내비게이션 컨트롤러에 현재 뷰 컨트롤러를 표시하도록 지시해야합니다.
[self.navigationController popViewControllerAnimated:YES];
그러면 스택에서 제거되고 이전 뷰 컨트롤러로 돌아갑니다.
답변
스위프트 3.0
루트보기로 돌아 가기
self.navigationController?.popToRootViewController(animated: true)
이전보기로 돌아 가기
self.navigationController?.popViewController(animated: true)
스위프트 2.3
루트보기로 돌아 가기
self.navigationController?.popToRootViewControllerAnimated(true)
이전보기로 돌아 가기
self.navigationController?.popViewControllerAnimated(true)
답변
당신은 전화해야합니다
popViewControllerAnimated:
뷰 컨트롤러를 추가하는 것과 반대입니다. pushViewController:animated:
답변
[self.navigationController popViewControllerAnimates:YES];
가장 좋은 옵션이지만 동일한 뷰 컨트롤러 클래스에 있지 않거나 뒤로 버튼 메서드가 호출되기 전에 델리게이트가 변경되면 시도 할 수도 있습니다.
먼저 뒤로 버튼을 정의해야합니다.
UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"anyTitleForBackButton" style: UIBarButtonItemStyleBordered target: nil action: @selector(backButtonTapped)];
[[self navigationItem] setBackBarButtonItem: newBackButton];
[newBackButton release];
그런 다음 backButtonTapped 메서드에서 호출 할 수 있습니다.
[self.navigationController pushViewController:desiredViewController animated:YES];