İOS'ta programlı olarak gezinme denetleyicisi geri düğmesini çağırın


85

UINavigationController tabanlı bir iPhone uygulamasında, bir yöntemde, basılan ve bir görünüme geri dönmenin programlı eşdeğerini gerçekleştirmek istiyorum.

yani, burada görüldüğü gibi otomatik olarak İşler düğmesine basın:

Gezinme Denetleyicisi resmi

Yapabileceğim genel bir iOS araması var mı yoksa daha fazla bilgi gerekli mi?

Yanıtlar:


189

UINavigationControllerbireyin -popViewControllerAnimated:yöntem istediğini yapmalıdır:

[navigationController popViewControllerAnimated:YES];

12
harika, Steve ve Niels sayesinde. Kullandığım çözüm [self.navigationController popViewControllerAnimated: YES] idi; kolay;)
oberbaum

bu, uitabbar'a eklenen görünüm denetleyicileri dışında harika çalışıyor. herhangi bir ipucu?
virata

1
Ekledim [self.navigationController popViewControllerAnimated:YES];ama hiçbir şey yapmıyor, ancak çalışan bu düğmeye dokunduğunuzda bir uyarı var.
mohsin.mr

Hmm, boş bir ekran, yanıt vermeyen bir uygulama ve konsolda şu görüntüleniyor: "Beklenmedik bir durumda bir gezinme geçişini bitiriyorum. Gezinme Çubuğu alt görünüm ağacı bozulabilir."
Kurt

24

Düğmeye aslında programlı olarak BASMAK istemediğinizi, ancak düğmeye basmanın sonucunu kopyalamanızı varsayarsak, gezinme denetleyicisine mevcut görüntü denetleyicisini açmasını söylemelisiniz.

[self.navigationController popViewControllerAnimated:YES];

Bu, onu yığından kaldıracak ve sizi önceki görünüm denetleyicisine geri döndürecektir.


21

Swift 3.0

Kök görünüme dön

self.navigationController?.popToRootViewController(animated: true)

Önceki görünüme dön

self.navigationController?.popViewController(animated: true)

Swift 2.3

Kök görünüme dön

self.navigationController?.popToRootViewControllerAnimated(true)

Önceki görünüme dön

self.navigationController?.popViewControllerAnimated(true)

7

Aramalısın

popViewControllerAnimated:

bu, görünüm denetleyicileri eklemenin tam tersidir. pushViewController:animated:


6
[self.navigationController popViewControllerAnimates:YES];

en iyi seçenektir, ancak aynı görünüm denetleyicisi sınıfındaysanız veya temsilciniz geri düğmesi yönteminiz çağrılmadan önce değişirse, şunu da deneyebilirsiniz:

önce geri düğmesini tanımlamalısınız ---

UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"anyTitleForBackButton" style: UIBarButtonItemStyleBordered target: nil action: @selector(backButtonTapped)];

[[self navigationItem] setBackBarButtonItem: newBackButton];

[newBackButton release];

ve sonra backButtonTapped yönteminde şunu çağırabilirsiniz:

[self.navigationController pushViewController:desiredViewController animated:YES];
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.