Nút quay lại bộ điều khiển điều hướng cuộc gọi theo lập trình trên iOS


84

Trong một ứ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 với lập trình của nút quay lại được nhấn và quay lại một chế độ xem.

tức là tự động nhấn nút Jobs như đã thấy ở đây:

Hình ảnh Bộ điều khiển Điều hướng

Có cuộc gọi iOS chung nào mà tôi có thể thực hiện hay cần thêm thông tin không?

Câu trả lời:


188

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, cảm ơn Steve và Niels. Giải pháp tôi đã sử dụng là [self.navigationController popViewControllerAnimated: YES]; dễ dàng;)
oberbaum

điều này hoạt động tốt ngoại trừ các bộ điều khiển chế độ xem được thêm vào thanh uitabbar. bất kì manh mối nào??
virata

1
Tôi đã thêm [self.navigationController popViewControllerAnimated:YES];nhưng nó không làm gì cả, tuy nhiên có một cảnh báo về việc nhấn vào nút đó đang hoạt động.
mohsin.mr

Rất tiếc, tôi nhận được một màn hình trống, một ứng dụng không phản hồi và các thông tin sau trong bảng điều khiển: "Đang hoàn tất quá trình chuyển đổi điều hướng ở trạng thái không mong muốn. Cây xem phụ của Thanh điều hướng có thể bị hỏng."
Kurt

24

Giả sử bạn không thực sự muốn nhấn nút theo chương trình, mà chỉ cần sao chép kết quả của việc nhấn nút, bạn nên yêu cầu bộ điều khiển điều hướng bật bộ điều khiển chế độ xem hiện tại.

[self.navigationController popViewControllerAnimated:YES];

Thao tác này sẽ xóa nó khỏi ngăn xếp và đưa bạn trở lại bộ điều khiển chế độ xem trước đó.


21

Swift 3.0

Quay lại chế độ xem gốc

self.navigationController?.popToRootViewController(animated: true)

Quay lại chế độ xem trước

self.navigationController?.popViewController(animated: true)

Swift 2.3

Quay lại chế độ xem gốc

self.navigationController?.popToRootViewControllerAnimated(true)

Quay lại chế độ xem trước

self.navigationController?.popViewControllerAnimated(true)

7

Bạn nên gọi

popViewControllerAnimated:

điều này ngược lại với việc thêm bộ điều khiển chế độ xem với pushViewController:animated:


6
[self.navigationController popViewControllerAnimates:YES];

là tùy chọn tốt nhất nhưng nếu bạn không ở trên cùng một lớp bộ điều khiển chế độ xem hoặc người được ủy quyền của bạn thay đổi trước khi phương thức nút quay lại của bạn được gọi thì bạn cũng có thể thử--

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

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

[[self navigationItem] setBackBarButtonItem: newBackButton];

[newBackButton release];

và sau đó trong phương thức backButtonTapped, bạn có thể gọi--

[self.navigationController pushViewController:desiredViewController animated:YES];
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.