ฉันมีแถบนำทางในมุมมองและฉันต้องการเปลี่ยนชื่อรายการการนำทางโดยใช้โปรแกรม
วิธีนี้ทำได้อย่างไร?
ฉันมีแถบนำทางในมุมมองและฉันต้องการเปลี่ยนชื่อรายการการนำทางโดยใช้โปรแกรม
วิธีนี้ทำได้อย่างไร?
คำตอบ:
ใน UIViewController ของคุณ
self.navigationItem.title = @"The title";
เวอร์ชัน Swift 3:
หากคุณใช้แถบนำทางโดยไม่มีตัวควบคุมการนำทางคุณสามารถลองสิ่งนี้:
navigationBar.topItem?.title = "Your Title"
หวังว่าจะได้รับความช่วยเหลือ
ใน viewDidLoad
self.title = @"Title";
จากเอกสารของ Apple :
วิธีทั่วไปในการใช้แถบนำทางคือการใช้ตัวควบคุมการนำทาง คุณยังสามารถใช้แถบนำทางเป็นวัตถุเดี่ยวในแอปของคุณ
ดังนั้นหากคุณมี UINavigationController สิ่งที่คุณต้องทำทั้งหมดเพื่อตั้งชื่อของแถบนำทาง (ตามที่อธิบายไว้ในคำตอบก่อนหน้านี้ทั้งหมด)
self.navigationItem.title = @"title";
แต่ถ้าคุณมีแถบนำทางแบบสแตนด์อโลนที่สร้างขึ้นโดยใช้โปรแกรมภายในออบเจ็กต์ของ UIViewController คุณต้องตั้งค่าลักษณะเริ่มต้นของแถบการนำทางโดยการสร้างอ็อบเจ็กต์ UINavigationItem ที่เหมาะสมและเพิ่มลงในสแต็กวัตถุแถบการนำทางเช่น
ตัวอย่าง Objective-C Code สำหรับขั้นตอนที่กล่าวถึง:
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];
สำหรับแถบนำทางแบบสแตนด์อโลนเวอร์ชัน Swift โปรดดูคำตอบนี้
เขียนโค้ดด้านล่างviewDidLoad
หรืออาจจะดีกว่าจะอยู่ภายใต้initWithNibName:
self.navigationItem.title = @"title";
ขอบคุณ.
คุณยังสามารถใช้👇🏻
[self.navigationController.navigationBar.topItem setTitle:@"Titlet"];
รหัสนี้ใช้ไม่ได้สำหรับฉัน
self.navigationItem.title = @"Title here";
แต่มันได้ผล
self.title = "Title Name"
ในมุมมอง UIViewController ของคุณ
self.navigationItem.title = "The title"; //In swift 4
หรือ
คุณสามารถทำได้
self.title = "The title"
จะทำเคล็ดลับ
นอกจากนี้คุณยังสามารถใส่ข้อความข้างต้นในการมอบหมายแอปเพื่อทำซ้ำทั่วโลก
ใช้ในเมธอด ViewDidLoad
รูปแบบ :
@property(nonatomic,readonly,retain) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.
ตัวอย่าง:
self.navigationItem.title = @"Title here";
หมายเหตุสำคัญมาก: ตรวจสอบให้แน่ใจว่าคุณได้ทำการเปลี่ยนแปลงที่กล่าวถึงข้างต้นในเมธอด viewDidLoad ของมุมมองผู้ปกครองหรือแถบนำทางผู้ปกครองในสตอรีบอร์ด
บางครั้งคุณอาจได้รับกรณีที่คุณกำลังอัปเดตชื่อและไม่ก่อให้เกิดผลกระทบใด ๆ ซึ่งอาจเกิดขึ้นเมื่อคุณมีมุมมองแบบกำหนดเองtopItem
ดังนั้นคุณอาจต้องการอัปเดตดังนี้:(self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"