ナビゲーションの戻るボタンのタイトルを消して矢印だけにする

戻るボタンのタイトルを消して左矢印「<」だけにするにはどうすれば良いか?実は前の画面と繋がっているため、前の画面で空のnavigationItemを割り当てておかなくてはなりません。

// 遷移元VC
- (void)viewDidLoad {
    [super viewDidLoad];
    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
}

こうして空ボタンを作ってから遷移すると戻るボタンのタイトルが消えるんですが、遷移元が複数ある場合、そのすべてに割り当てないといけません。

タイトルを消したいVC側だけで実現するには、遷移先で遷移元を取得して空ボタンを割り当て、戻る際に解放すると上手くいきます。iOS8, 9, 10, 11で確認済み。

※iOS 11になってから空文字を割り当てなくても[UIBarButtonItem new];でOKになりました。

// 遷移先VC
- (void)hideBackBarButtonTitle {
    if ([self isMovingToParentViewController]) {
        UIViewController *previousViewController = self.navigationController.viewControllers[self.navigationController.viewControllers.count - 2];
        previousViewController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
    }
}

- (void)showBackBarButtonTitle {
    if ([self isMovingFromParentViewController]) {
        self.navigationController.topViewController.navigationItem.backBarButtonItem = nil;
    }
}

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self hideBackBarButtonTitle];
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self showBackBarButtonTitle];
}

自前で矢印の画像を割り当てた場合もタイトルを消せますが、左端からのエッジスワイプが無効にされます。