2010-02-04 32 views
44

thể trùng lặp:
How do I change the title of the “back” button on a Navigation BarLàm cách nào để đặt văn bản của nút quay lại trên UINavigationBar?

Tình hình:
Tôi có một UIViewController được chi phối bởi một bộ điều khiển chuyển hướng. Tôi có thể đặt tiêu đề của thanh điều hướng bao gồm UIViewController bằng cách chỉ cần gọi self.title = @"title". Nhưng, tôi muốn để có thể thiết lập các nút văn bản lại của thanh điều hướng, quá (cho các ngôn ngữ khác nhau n' như vậy ..)

Vấn đề:
Tôi không biết làm thế nào để thiết lập văn bản của nút quay lại.

Các Câu hỏi:
Làm thế nào để thiết lập các nút quay lại của thanh UINavigation (lập trình không trong IB)?

+0

Tốt câu hỏi. Có thể không có cách nào để làm điều này (tôi thành thật không biết), nhưng tôi sẽ ngạc nhiên nếu thay đổi nó thành bất cứ thứ gì không phải là tiêu đề của mục trước đó hay từ "Back" không chống lại HIG. Và nếu nó chống lại HIG, có khả năng tùy chỉnh này có thể dẫn đến việc từ chối ứng dụng./2cents. –

+3

Đề xuất đặt "chấp nhận" của bạn thành câu trả lời của Boon, đó là chính xác. Câu trả lời của Matt không phải là một giải pháp tốt (xin lỗi, Matt! :) – Olie

+0

Thay đổi nhãn sau không chống lại HIG, nó chỉ có ý nghĩa. –

Trả lời

149

Cách setTitle - mặc dù có vẻ hoạt động, không chính xác. Nếu bạn chú ý kỹ, bạn sẽ nhận thấy rằng mục điều hướng chuyển sang tiêu đề mới trong khi chế độ xem mới được chuyển thành chế độ xem qua pushViewController. Thực tế là bạn phải khôi phục lại tiêu đề của bạn trong viewWillAppear là kludgy, điều này cho thấy tính chất hack của nó.

Cách đúng là để làm những điều sau đây trước khi pushViewController của bạn:

 
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
           initWithTitle: @"Back Button Text" 
           style: UIBarButtonItemStyleBordered 
           target: nil action: nil]; 

[self.navigationItem setBackBarButtonItem: backButton]; 
[backButton release]; 

+8

Thật không may, sẽ không hoạt động trong lệnh gọi 'preparForSegue: sender:'. Tôi không chắc giải pháp được chấp nhận là gì cho bảng phân cảnh. – wcochran

+1

Tôi nhận được điều này để làm việc tốt trong một preparForSegue: người gửi: callback. Chỉ cần thoát khỏi [phát hành backButton]; nếu bạn đang sử dụng ARC. – dnorcott

+9

Một điều đáng chú ý ở đây: bạn thiết lập nút quay trên bộ điều khiển xem hiện tại, và bạn sẽ thấy nó trong khung nhìn tiếp theo ... trong trường hợp nó giúp bất cứ ai .. nó đã giúp tôi. – Zsolt

12

Cách tốt nhất và dễ dàng nhất theo tài liệu hướng dẫn táo để thiết lập tiêu đề bộ điều khiển quan điểm của những gì phía sau nên nói là thế này -

Ví dụ:

Nếu viewController1 là dưới viewController2 (và back button trên viewController2 sẽ viewController1)

viewController1.title = @"something awesome"; 

các back button trên viewController2 sẽ hiển thị "một cái gì đó tuyệt vời"

+2

Nếu bạn thêm tiêu đề vào bộ điều khiển chế độ xem trong ngăn điều hướng, tiêu đề đó sẽ xuất hiện dưới dạng tựa đề của nút quay lại. "Back" là văn bản mặc định. Bạn không cần phải xóa tiêu đề này sau khi nó được đặt. Vì vậy đây là câu trả lời đúng. – Mark

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