2012-04-10 46 views
3

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

为了改变回栏项目的标题,例如“后退”我实现了在视图控制器下面这被推开:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

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

但是这并没有改变的标题后栏项目。我也试着用相同的结果使用新创建的UIBarButtonItem:后面的条目不会改变。

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

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

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

结果相同:后栏项目标题不变。那么我怎样才能轻松地更改后栏项目的标题?提前致谢!

+0

是你能解决这个问题?谢谢 – SergioM 2013-03-20 05:44:32

回答

2

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

3

更具体的比马可的回答了一下,你要找的东西是这样的:

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

注意,这是恕我直言很烦人的,因为你可能最终不得不有一个整体的状态机器以“self.title”应该在当前时刻为中心,而不是让故事板中的每个场景都知道后退按钮应该说什么。

0

添加回栏项目的标题为 “Storyboard-> VC-> NavigationItem” 例如为 “后退”, 当准备SEGUE,设置:

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