ios5 - 通过推送 Segue 改回项目标题

标签 ios5 uistoryboardsegue

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

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

- (void)viewDidLoad {
    [super viewDidLoad];

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

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

另一种方法是在执行 segue 的 Controller 中像 prepareForSegue 一样设置后退栏项目。

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

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

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

最佳答案

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

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

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

关于ios5 - 通过推送 Segue 改回项目标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10089348/

相关文章:

ios - 将 CoreData 添加到现有的 iOS 项目 - 无法获取 NSManagedObjectModel

ios - 序列化我的自定义 nsobject 以通过 http 发送

objective-c - 核心数据唯一性不起作用?

cocoa-touch - 不使用 transitionFromViewController 时我必须发送的 UIViewController 包含消息的正确顺序是什么?

ios - 从 xib 转到 UIViewController

ios - 自定义 UIStoryboardSegue Push 和 Pop 匹配动画

ios - 在没有 Segues 的 Storyboard 之间传递变量 - Swift

iphone - 是什么触发了 iOS 5.0 缓存清除?

ios 应用程序 - 同时在多个 Segue 上崩溃(在一个动画播放时转到其他 Segue)

ios - 接收器没有标识符为 'contact_segue' 的 segue