У меня есть сомнения по поводу содержания UIViewController.Для простоты я сделал пример проекта и определил класс SecondViewController.
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.black
NSLog("In second controller")
// Do any additional setup after loading the view.
}
override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
NSLog("Transitioning in second controller")
}
}
И в первом контроллере я делаю следующее:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let secondController = SecondViewController()
addChild(secondController)
view.addSubview(secondController.view)
secondController.view.frame = self.view.bounds
secondController.didMove(toParent: self)
}
override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
NSLog("Transitioning in first controller")
}
}
Когда я запускаю программу, она запускается ивот журналы:
2018-09-28 19:11:15.491211+0400 ViewContainment[3897:618645] In second controller
2018-09-28 19:11:17.254221+0400 ViewContainment[3897:618645] Transitioning in first controller
Вопросы:
Означает ли это, что все уведомления UIViewController будут обрабатываться первым контроллером представления, и никакие уведомления не будут отправлятьсяконтроллер второго вида?
Безопасно ли добавлять действия для нажатия кнопок в контроллере второго вида к селекторам в контроллере первого вида?