2013-04-05 38 views
5

Tôi đã tạo một tiêu đề cho thanh điều hướng trong dự án bảng phân cảnh của mình, nhưng khi tôi chuyển sang chế độ xem tiếp theo, nút quay lại hiển thị tên giống với thanh điều hướng trước (thanh điều hướng chính) của tôi. Tôi có thể đặt tên tiêu đề và nút quay lại riêng biệt không?Tiêu đề thanh điều hướng và tên nút quay lại giống nhau?

Tôi đã thử mã sau nhưng mã không hoạt động? tại sao?

[email protected]"Recent Books"; 
[email protected]"Back"; 
+0

Hãy nhìn vào câu trả lời của tôi http://stackoverflow.com/questions/9871578/how-to-change-the-uinavigationcontroller-back- button-name/9871775 # 9871775 – Tendulkar

+0

Câu trả lời đó không hoạt động đối với tôi – Naveen

Trả lời

19

Theo UINavigationItem Class Reference

"Khi mục navigation này là ngay dưới mục hàng đầu trong ngăn xếp, bộ điều khiển chuyển hướng xuất phát vào nút quay lại cho thanh chuyển hướng từ mục điều hướng này. [ ...] Nếu bạn muốn chỉ định hình ảnh hoặc tiêu đề tùy chỉnh cho nút quay lại, bạn có thể gán một mục nút tùy chỉnh thanh (có tiêu đề hoặc hình ảnh tùy chỉnh của bạn) cho thuộc tính này thay thế. "

Vì vậy, cố gắng này trong VC đầu tiên của bạn từ nơi bạn đang đẩy VC khác

[email protected]"Recent Books"; 
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
            initWithTitle:@"Back" 
            style:UIBarButtonItemStylePlain 
            target:nil 
            action:nil]; 
self.navigationItem.backBarButtonItem=backButton; 
+0

@Bhargavi ... Lỗi kỹ thuật..không sao cả ok. – Naveen

+0

Tôi có hai BarButton được tùy chỉnh trên giao diện đầu tiên của tôi, ở bên trái để "Thông tin" và quyền "Cài đặt". Chưa hết, tôi phải đặt tên cho BackButton ở chế độ xem đầu tiên. Trong cây thành phần của tôi bây giờ là ba BarButton, nhưng khi tôi chạy ứng dụng mọi thứ hoạt động bình thường. Đơn giản là không có ý nghĩa. –

2

Sau đây nên giải quyết vấn đề của bạn

-(void)viewDidAppear:(BOOL)animated 
{ 
    self.navigationController.navigationBar.backItem.title = @"back"; 
} 

Bạn cũng có thể sử dụng cú pháp Objective-C này

[[self.navigationController.navigationBar backItem] setTitle:@"back"]; 
6

Giả sử bạn đang đẩy chế độ xem của mình ller A -> B

Trong viewController Một thử thêm mã này trong viewDidLoad phương pháp

UIBarButtonItem *btn_Back = [[UIBarButtonItem alloc] initWithTitle:@"Back" 
style:UIBarButtonItemStylePlain target:nil action:nil]; 
self.navigationItem.backBarButtonItem=btn_Back; 

Vì vậy, bạn sẽ thấy nút "Back" của bạn trong viewController B

1

Chỉ cần làm điều đó theo cách này, một của cách dễ nhất tôi đã tìm thấy cho đến bây giờ:

Tạo nút quay lại tùy chỉnh và thêm nó vào thanh điều hướng bên trái mục thuộc tính:

- (void)viewDidLoad 
{ 
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
UIImage *backBtnImage = [UIImage imageNamed:@"Backnavigation.png"] ; // Here set the back button image 
[backBtn setBackgroundImage:backBtnImage forState:UIControlStateNormal]; 
[backBtn addTarget:self action:@selector(handleBack:) forControlEvents:UIControlEventTouchUpInside]; 
backBtn.frame = CGRectMake(0, 0, 24, 24); 
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:backBtn] ; 
self.navigationItem.leftBarButtonItem = backButton; 
} 


//Handle the Back Button Event 
- (void) handleBack:(id)sender 
{ 
    // do your custom handler code here 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

Ngoài ra, làm theo cách này, bạn không cần thay đổi tiêu đề của NavigationBar mọi lúc.

Đây là nút Back để bạn tham khảo: enter image description here

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