[IOS] View Controller


1. View Controller
  • ビューコントローラ3種類の
  • コンテンツビューコントローラおよびコンテンツビューコントローラ
  • 作成
  • ビューコントローラ
  • let vc = UIVIewController()
    Scene接続
  • ビューコントローラ
  • Nib
  • 2. View Management
  • Root View
  • SuperviewとSubview
  • インタフェースビルダーが提供するビュー階層管理機能
  • ビュー階層管理API
  • 3. View Controller Life Cycle

  • ビューコントローラのライフサイクル

  • コールバックメソッド呼び出し順序

  • コールバックメソッド実装モード
  • 4. Orientation and Rotation
  • Device Orientation
  • Interface Orientation
  • ワークステーションイベント処理
  • コンテナイベント有無処理
  • 優先方向設定
  • Container View Controller
    : Navigation Controller, tab Controller
    作成
  • Contenter View Controller
  • クライアント内コンテナビューコントローラ実施
  • シーケンスイメージボード指定Child VC
  • ビューコントローラ階層管理
  • 層移動イベント処理
  • Navigation Controller

  • ナビゲーションコントローラ構造
  • Root viewを所有しています.
  • 下はToolBar上はNavigation Bar

  • ナビゲーションスタックの管理
  • スタックの一番下にRoot VCがあり、一番上のものはTop VCと呼ばれています.
  • popだとスタックから消えてtop VCを交換します.

  • Push & Pop Transition

  • Large Title Mode
  • Large Title/Large Title with Search Bar/Normal Title

  • リレーショナルセットからビューコントローラに接続

  • Navigation BarとNavigation Item
  • Navigation Bar内のボタンはUIBarButtonItemインタフェースとして追加されます.
  • Navigation Itemは、title、LeftBarButtonItems、RightBarButtonItemsなどを管理する.

  • コード生成(さらに学習が必要)
  • に戻る前の機能と後退ボタンはナビゲーションコントローラが担当し、
  • を手動で実施する必要はない.
  • ナビゲーションコントローラ、Child Viewコントローラ、およびインタフェースの作成は、コードによって直接実現される必要があります.また、新しいchildタグコードを直接実現する必要があります.
  • Navigation Item and Navigation Bar
  • Navigation Item
  • Child VCがTopVCになるたびにNavigation Itemも更新されます.
  • Root VC自動ナビゲーションItemのみ.残りは追加します.
  • Navigation Bar
  • コード、実装時はViewDidLoadで行います.
  • タイトルを設定する3つの方法
  • StoryboardからNavigation Itemを追加し、Title
  • を変更
  • ビューコントローラのプロパティインスペクタで、タイトル
  • を変更します.
  • コードは、ナビゲーション項目を追加することなく、属性に直接アクセスするときに
  • を自動的に生成する.
    override func viewDidLoad() {
    	super.viewDidLoad()
        navigationItem.title = "titleName" 
        title = "titleName" //이런 방식도 가능
    }
  • ボタンを追加
  • コードを記述する場合は、UIBarButton Item
  • にバインドする必要があります.
    let sw = UISwitch()
    let switchItem = UIBarButtonItem(customview: sw)
    //배열 형식으로 저장
    //navigationItem.rightBarButtonItems = [switchItem, btn1, btn2 ...]
    navigationItem.setRightBarButtonItems([switchItem, btn1, btn2 ...], animated: true)
  • Backボタン
  • BackボタンのTitleは、前のVCのAttribute Inspectorで行うべきです.
  • コードを記述する場合も、従来のVCで
  • を記述する.
    override func viewDidLoad() {
    	super.viewDidLoad()
        navigationItem.backBarButtonItem?.title = "BackButtonTitle"
    }
    Customizing Navigation Controller
  • ナビゲーションバー、ツールバー表示設定
  • ナビゲーションコントローラ属性
  • Large Title Mode制御
  • シャドウ画像
  • を追加
  • Backボタン画像変更
  • Large Titleテキスト属性
  • を設定
    Navigation Controller with Toolbar
  • Toolbar
  • ビューの下部にあります.
  • Toolbar Items
  • Bar Button Itemに追加します.左から配置します.
  • コード、
  • let item1 = UIBarButtonItem(barButtonSystemItem: .add, target: nil, action: nil)
    setToolbarItems([item1,item2 ...], animatde: true)
  • ツールバーにボタンを配置
  • Flexible Spaceを使用して、ボタンの位置を変更できます.
  • Toolbar切替機能実現
  • let hidden = navigationController?.isToolBarHidden ?? false
    navigationController.setToolbarHidden(!hidden, animated: true)
    Tab Bar Controller

  • タブバーコントローラ構造
  • Child Viewをアレイで管理します.最大5個です.More Navigation Controlを使用します.

  • Tab Bar Item
  • title, image, badgeValue

  • タブの編集
  • ストーリーボードからDrage&Dropに変更できます.

  • Regular Tab BarとCompact Tab Bar
  • Regular Tab Bar:画像が上、タイトルが下です.
  • (垂直)
  • Compact Tab Bar:画像は左側、titleは右側にあります.

  • More Item, More Navigation Controller

  • Tab Bar Customization Sheet

  • 編集可能タブの指定

  • コントロールタブの選択

  • タブ選択イベントの処理

  • ナビゲーションコントローラとTab Barコントローラを使用します.
  • ChildはNavigation Controllerの組み込み実装を採用している.
  • Tab Barコントローラを
  • ナビゲーションコントローラに埋め込むのは間違っています.