pco2699’s blog

学んだコード・技術について、保存しておく場所

UINavigationContollerの自動生成される「戻る」ボタンの書き換え

環境

前提条件

メイン画面(ViewController.swift) → 設定画面(SettingsViewController.swift)

やり方 その1

遷移先であるSettingsViewController.swiftを書き換える。 今回はこちらを採用。

  override func viewDidLoad() {
    super.viewDidLoad()
    
    //トップに戻るボタンを作成
    let leftButton = UIBarButtonItem(title: "戻る", style: UIBarButtonItemStyle.plain, target: self, action: #selector(goTop))
    self.navigationItem.leftBarButtonItem = leftButton
  }

  func goTop(){
    //トップ画面に戻る。
    self.navigationController?.popToRootViewController(animated: true)
  }

やり方 その2

遷移元であるViewController.swiftからbackbuttonを書き換える。 (実装してないが、たぶんいけるはず?)

  override func viewDidLoad() {
    super.viewDidLoad()

    //トップに戻るボタンを作成
    let backButton = UIBarButtonItem(title: "戻る", style: UIBarButtonItemStyle.plain, target: self, action: #selector(goTop))
    self.navigationItem.backBarButtonItem = backButton
  }

  func goTop(){
    //トップ画面に戻る。
    self.navigationController?.popToRootViewController(animated: true)
  }
  

わからんポイント

その一だと「<」と書かれた矢印も合わせて書き換えられてしまう。 どうすればいいか。