UIKit

UIView (or UIViewController)

  • viewDidLoad() - after interface file loaded, outlets reference objects. Override if only need to configure once
  • viewWillAppear(_:) - just before VC’s view added to window. Override if needs to happen each time VC’s view appears on screen
  • loadView() - override to create a VC’s view programmatically

Programatic View Setup

control.addTarget(self,
                  action: #selector(myCustomFuncName(_:)),
                  for: .valueChanged)
//...
@objc func myCustomFuncName(_ segControl: UISegmentedControl) {…}

Ways to Trigger Actions

  • @IBActions (example: UIButton)
  • Delegates (example: UITableDelegate)
  • Callbacks (example: UIContextualAction)
  • addTarget() #selectors (example: UISegmentedControl .valueChanged)
  • UIActions (example: UIDatePicker)

Pop Up Buttons

let options = [UIAction(title: "Some Title", state: .on) {…}]
popUpButton.menu = UIMenu(children: options)

Expandable Text Views