經過 tab bar controller 和 navigation controller,終於將資料交到目標的 view controller 手上

問題: 點選 Welcome 頁面的 Login 按鈕後,將顯示第一個 tab 的小王子頁面,想將資料從 Welcome 頁面傳到小王子頁面,中間會經過重重難關,先經過 tab bar controller,再經過 navigation controller。

解答:

在 Welcome 頁面的 controller 定義 prepare function 傳資料。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  let tabBarController = segue.destination as! UITabBarController
let navController = tabBarController.viewControllers?.first as?
UINavigationController
let bookController = navController?.viewControllers.first as?
BookViewController
bookController?.bookName = "小王子和彼得潘的那些年"
}