【问题标题】:Change back item title with push Segue使用 push Segue 更改项目标题
【发布时间】:2012-04-10 13:03:42
【问题描述】:

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

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

- (void)viewDidLoad {
    [super viewDidLoad];

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

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

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

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

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

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

【问题讨论】:

  • 你能解决这个问题吗?谢谢

标签: ios5 uistoryboardsegue


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      self.navigationItem.backBarButtonItem.title = @"Need a Title :)";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-17
        • 1970-01-01
        • 1970-01-01
        • 2012-01-15
        相关资源
        最近更新 更多