3

我正在使用 push segue 在我的 Storyboard 中显示一个新的 ViewController。默认情况下,推送的导航控制器上的后栏项目具有“上一个”(底层)控制器的标题。

为了将后栏项目的标题更改为,例如,“Back”,我在被推送的 ViewController 中实现了以下内容:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.navigationItem.backBarButtonItem.title = @"Back";
}

但这不会改变后栏项目的标题。我还尝试使用具有相同结果的新创建的 UIBarButtonItem:后栏项目不会改变。

另一种方法是在prepareForSegue执行 segue 的控制器中设置后栏项目。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{

    if ([[segue identifier] isEqualToString:@"pushViewController"]) {
        UIViewController *viewController = [segue destinationViewController];
        viewController.navigationItem.backBarButtonItem.title = @"Back";
    }
}

结果相同:后栏项目标题没有改变。那么如何轻松更改后栏项目的标题?提前致谢!

4

3 回答 3

3

比 Marco 的回答更具体一点,您正在寻找的是:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{        
    self.title = @"Back";
    // ...
}

请注意,恕我直言,这很烦人,因为您可能最终不得不拥有一个以“self.title”为中心的整个状态机,而不是让情节提要中的每个场景都知道后退按钮应该说。

于 2012-06-27T16:31:49.153 回答
2

在源视图控制器中设置 navigationItem.backBarButtonItem.title,而不是目标视图控制器。

于 2012-06-19T03:40:11.380 回答
0

将后栏项目的标题添加到“Storyboard->VC->NavigationItem”示例中作为“Back”,并在准备 segue 时设置:

self.navigationItem.backBarButtonItem.title = @"Need a Title :)";
于 2012-10-14T12:00:31.687 回答