Ch.12 Silver: A Different Back Button Title

# 뒤로 가기 버튼 커스텀

  • 사진처럼 detail view 에서 뒤로 가기 버튼의 제목을 맘대로 커스텀하는 게 과제! 뭐가 바뀐거지 싶을 수 있지만 원래는 이전 뷰의 navigation title 인 LootLogger 였는데 Log 로 바꿔줬다

# 다시 돌아갈 뷰에서 커스텀하기

  • 힌트에 DetailViewController 가 아니라 ItemsViewController 에서 작업해야된다고 해서 그렇게 했는데, 궁금해서 따로 DetailViewConroller 에서도 해봤더니 변화가 적용되지 않았다...아마도 내가 못찾은 거겠지만 공식문서를 봐도 왜 굳이 돌아갈 뷰(이하 상위 뷰)에서 해야되는 지 명확히는 모르겠지만 원래 백 버튼의 디폴트 값이 상위 뷰의 타이틀이므로 바꾸는 것도 상위 뷰에서 해야하는 것 같다...아마도...
// DetailViewController 의 상위 View Controller!
class ItemsViewController: UITableViewController {
    override func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
        // Update the model
        itemStore.moveItem(from: sourceIndexPath.row, to: destinationIndexPath.row)
    }
    
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // If the triggered segue is the "showItem segue"
        switch segue.identifier {
        case "showItem":
            // Figure out which row was just tapped
            if let row = tableView.indexPathForSelectedRow?.row {
                // Get the item associated with this row and pass it along
                let item = itemStore.allItems[row]
                let detailViewContoller = segue.destination as! DetailViewController
                detailViewContoller.item = item
                navigationItem.backButtonTitle = "Log"
            }
        default:
            preconditionFailure("Unexpected segue identifier")
        }
    }
}

좋은 웹페이지 즐겨찾기