2010-01-21 35 views
82

Trong ứng dụng iPhone dựa trên UINavigationController, trong một phương pháp tôi muốn thực hiện tương đương chương trình của nút quay lại được nhấn và quay lại chế độ xem.iphone - lập trình gọi điều khiển điều hướng nút quay lại

ví dụ: tự động nhấn nút Jobs như đã thấy ở đây:

Navigation Controller image

Có iOS generic gọi tôi có thể làm, hoặc được yêu cầu thêm thông tin?

Trả lời

187

UINavigationController 's -popViewControllerAnimated: phương pháp nên làm những gì bạn muốn:

[navigationController popViewControllerAnimated:YES]; 
+12

tuyệt vời, nhờ Steve và Niels. Giải pháp tôi đã sử dụng là \t \t [self.navigationController popViewControllerAnimated: YES]; dễ dàng;) – oberbaum

+0

công trình này tuyệt vời ngoại trừ các bộ điều khiển xem được thêm vào uitabbar. bất kì manh mối nào?? – virata

+1

Tôi đã thêm '[self.navigationController popViewControllerAnimated: YES];' nhưng nó không có gì, tuy nhiên có một cảnh báo khi chạm vào nút đó đang hoạt động. –

7

Bạn nên gọi

popViewControllerAnimated:

đó là điều ngược lại thêm bộ điều khiển vùng đang xem với pushViewController:animated:

24

Giả sử bạn không thực sự muốn nhấn nút lập trình, nhưng si mply sao chép kết quả của cách nhấn nút, bạn nên nói với bộ điều khiển điều hướng để bật bộ điều khiển xem hiện tại.

[self.navigationController popViewControllerAnimated:YES];

này sẽ loại bỏ nó ra khỏi ngăn xếp, và trả lại cho bạn với bộ điều khiển giao diện trước đó.

6
[self.navigationController popViewControllerAnimates:YES]; 

là lựa chọn tốt nhất nhưng nếu bạn cũng không vào lớp view controller cùng hoặc thay đổi người được ủy quyền trước khi phương pháp nút quay lại của bạn được gọi là sau đó bạn cũng có thể try--

đầu tiên bạn phải xác định lại nút ---

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

[[self navigationItem] setBackBarButtonItem: newBackButton]; 

[newBackButton release]; 

và sau đó trong phương pháp backButtonTapped bạn có thể call--

[self.navigationController pushViewController:desiredViewController animated:YES]; 
20

Swift 3,0

Quay lại xem gốc

self.navigationController?.popToRootViewController(animated: true) 

Trở lại giao diện trước đó

self.navigationController?.popViewController(animated: true) 

Swift 2.3

Quay lại xem gốc

self.navigationController?.popToRootViewControllerAnimated(true) 

Trở lại giao diện trước đó

self.navigationController?.popViewControllerAnimated(true) 
+0

Câu trả lời hay, tôi đang tìm kiếm nó –

+0

Cảm ơn! Chúc mừng nó đã giúp .. –

Các vấn đề liên quan