iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 13
0

從一大早出門到現在,終於有時間回家發文,一直被追殺。

Navigation是一種Container的元件,讓View Controller像stack系統一般有先進先出的排序特性

Navigation controller 在navigation界面管理一到多個View Controller,在這個狀態下的界面一次只會顯示一個View Controller,當按下按鈕或是選取的項目,會先隱藏第一個View Controller,再使用動畫效果push到下一個View Controller顯示在畫面上

按下在最上面Navigation Bar界面裡的Back Button會移除在排序中最上面的View Controller,顯示出下面的View Controller。

  • 下圖是官方文件的範例,展示了Setting的Navigation的實作介面

第一個畫面的應用程式列表呈現了每個設置與設置群組,看到上面的路徑視圖,可以了解Navigation Controller提供返回的按鈕去允許使用者回到上一頁面。

Navigation Controller 使用有順序的Array去管理子視圖(View Controller)。Array的第一個View Controller是第一頁面也會呈現在stack序列的最底層,最後一個View Controller會在stack序列的最頂層,會顯示當前的View Controller。你可以在class裡使用Segue或是其他的method,新增或移除stack的View Controller。使用者也可以使用在Navigation Bar的Back Button或者從左邊滑動的手勢移除stack序列最上方的View Controller。

Navigation Controller管理著Navigation bar,當Navigation bar更換的時候都是透過不同的View Controller。

Navigation Controller 使用委任物件來協調行為。委任物件可以覆寫push或是pop到View Controller也能提供自定義的轉場動畫,優先指定到所選的Navigation介面。若需要委任物件必須先尊崇UINavigationControllerDelegate protocol。

  • 下圖是官方文件在Navigation Controller跟物件管理之間的關係圖

如何把視圖加入到Navigation Controller

  1. 選擇Editor -> Embed in -> Navigation Controller

  1. 從Library拖曳出一個Navigation Controller,再從Navigation Controller按住Control拖拉到新的ViewController,然後選root view controller。


上一篇
Swift-UICollectionView
下一篇
Swift-Tap bar controller
系列文
Swift!從新手到微上手30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言