Tôi có một Thanh điều hướng trong một dạng xem và tôi muốn thay đổi tiêu đề Mục điều hướng của nó theo chương trình.
Làm thế nào là điều này được thực hiện?
Câu trả lời:
Trong UIViewController của bạn
self.navigationItem.title = @"The title";
Trong viewDidLoad
self.title = @"Title";
Từ Tài liệu của Apple :
Cách phổ biến nhất để sử dụng thanh điều hướng là sử dụng bộ điều khiển điều hướng. Bạn cũng có thể sử dụng thanh điều hướng làm đối tượng độc lập trong ứng dụng của mình.
Vì vậy, nếu bạn có UINavigationController, tất cả những gì bạn phải làm để đặt tiêu đề của thanh điều hướng (như đã giải thích trong tất cả các câu trả lời trước)
self.navigationItem.title = @"title";
Nhưng nếu bạn có một thanh điều hướng độc lập được tạo theo chương trình trong một đối tượng của UIViewController, thì Bạn phải thiết lập giao diện ban đầu của thanh điều hướng bằng cách tạo các đối tượng UINavigationItem thích hợp và thêm chúng vào ngăn xếp đối tượng của thanh điều hướng, tức là
Mẫu mã Objective-C cho các bước được đề cập:
UINavigationBar* navbar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)];
/* Create navigation item object & set the title of navigation bar. */
UINavigationItem* navItem = [[UINavigationItem alloc] initWithTitle:self.shoppingItem.name];
/* Create left button item. */
UIBarButtonItem* cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(onTapCancel:)];
navItem.leftBarButtonItem = cancelBtn;
/* Create left button item. */
UIBarButtonItem* doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(onTapDone:)];
navItem.rightBarButtonItem = doneBtn;
/* Assign the navigation item to the navigation bar.*/
[navbar setItems:@[navItem]];
/* add navigation bar to the root view.*/
[self.view addSubview:navbar];
Đối với phiên bản Swift của thanh điều hướng độc lập, hãy xem câu trả lời này .
Viết mã dưới đây vào viewDidLoad
hoặc có thể tốt hơn sẽ ở dướiinitWithNibName:
self.navigationItem.title = @"title";
Cảm ơn.
Bạn cũng có thể sử dụng 👇🏻
[self.navigationController.navigationBar.topItem setTitle:@"Titlet"];
Sử dụng nó trong phương thức ViewDidLoad
Định dạng :
@property(nonatomic,readonly,retain) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.
Thí dụ :
self.navigationItem.title = @"Title here";
Đôi khi bạn có thể gặp trường hợp bạn đang cập nhật tiêu đề và nó không gây ra bất kỳ ảnh hưởng nào, đây có thể là khi bạn có chế độ xem tùy chỉnh trên topItem
đó, do đó bạn có thể muốn cập nhật nó như thế này:(self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"