// ViewController.swift
class ViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// add custom xib view (day view)
let view = Bundle.main.loadNibNamed("ScheduleView", owner: self, options: nil)?.first as! ScheduleView
view.frame = self.view.frame
self.view.addSubview(view)
}
}
// ScheduleView.swift
class ScheduleView.swift: UIView {
/*
// Only override draw() if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func draw(_ rect: CGRect) {
// Drawing code
}
*/
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesBegan(touches, with: event)
print("touchesBegan")
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesEnded(touches, with: event)
print("touchesEnd")
// move scene in here
// show secondViewController
}
}
のみ、コントローラが別のビューコントローラを提示することができる表示します。 委任パターンを使用してこれを行うことができます。
このプロトコルに準拠して、あなたのViewControllerでScheduleViewに
var presentVCDelegate: PresentVCDelegate
をプロパティを追加し、新しいプロトコル
protocol PresentVCDelegate {
func presentVC()
}
を作成し、自己としてビューのデリゲートを設定
//in view will appear
view.presentVCDelegate = self
ドンプロトコルに従うことを忘れないでください
ScheduleView中にあなたtouchEnd方法で
extension ViewController: PresentVCDelegate {
func presentVC() {
//present your secondViewController here
}
}
、最終的には、
self.presentVCDelegate.presentVC()
ありがとうございます。できます。 – user3525889