Today I encountered a problem. After a long time, I finally understood the problem: controllerA and controllerB. Click a button in controllerA to push controllerB out. The title of the return button on controllerB is not what I want, but cannot be changed. This title is the title of controllerA by default. If the title of controllerA is not set, this title is "Returned", but the title of controllerA must be set, set the title of the return button on controllerB to "return ". Failed to change in stroyboard; Set self in controllerB. navigationItem. backBarButtonItem. title = @ "return", but it is not successful. Follow up and check, self. navigationItem. backBarButtonItem has no value at all, so a new value is assigned to him. UIBarButtonItem * backItem = [[UIBarButtonItem alloc] init]; backItem. title = @ "return"; self. navigationItem. backBarButtonItem = backItem; still unsuccessful. It's so old. Finally, try setting it in controllerA. The result is changed immediately after controllerA pushes controllerB. Haha. In controllerA, www.2cto.com: UIBarButtonItem * backItem = [[UIBarButtonItem alloc] init]; backItem. title = @ "return"; self. navigationItem. backBarButtonItem = backItem; In controllerA: self. navigationItem. backBarButtonItem. title = @ "return", also failed