Skip to content

Instantly share code, notes, and snippets.

@igavrysh
Created February 16, 2018 19:47
Show Gist options
  • Save igavrysh/0a0a3f4c3edabd00acb3172f55a99173 to your computer and use it in GitHub Desktop.
Save igavrysh/0a0a3f4c3edabd00acb3172f55a99173 to your computer and use it in GitHub Desktop.
@objc
public func turnOnButtonTouched() {
self.setViewControllers([self.pages[1]], direction: .forward, animated: true, completion: nil)
}
override func viewWillAppear(_ animated: Bool) {
// 1) тебе надо пройтись по каждому контроллеру из массива страниц (контрорллеров для страниц)
_ = self.pages
// 2) тебе надо в каждом контроллере достать его главный view
// 3) тебе надо у каждого view достать его subview, и так далее - но я решил максимум
// один проход сделать так как знаю что кнопка эта лежит на главной вьюхе
.map { $0.view.subviews }
// 4) в итоге у тебя получается массив массивов
// [[View1, View2, View3], [View4, View5], [View6]]
// View1 View2 and View3 лежат на первой вьюхе первого контроллера(перовой странице)
// тебе из этого надо сделать следующее
// [[View1, View2, View3], [View4, View5], [View6]]] -> [View1, View2, View3, View4, View5, View6]
// из двумерного сделать одноверный складываю туда вьюхи
.flatMap {
$0.map {
// 5) из получившиегося массива Views ты ищешь те вью? которые есть наследниками UIButton
if let button = $0 as? UIButton {
// 6) на найденную UIButton вешаешь обработчик
button.addTarget(self,
action:#selector(turnOnButtonTouched),
for: .touchUpInside)
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment