
Какая разница между первым и вторым примером?
За что отвечает таргет?
В каком случае вызывается метод при нажатие кнопки?
TL;DR
При нажатии на кнопку наш метод вызывается в обоих случаях.
Только в первом примере UIKit попытается вызвать метод в назначенном таргете(у нас это ViewController). Будет краш, если этого метода не существует.
Во втором же примере используется iOS Responder Chain, UIKit будет искать самого ближнего UIResponder-a у которого есть данный метод. Краша не будет, если наш метод не найден.
UIViewController, UIView, UIApplication наследуют от UIResponder.
