私はiOSが新しく、現在3つのビューを持ち、スワイプジェスチャーを使ってそれらの間を移動したいと考えています。スワイプが動作します。最初に赤いbgビューが読み込まれ、スワイプはうまく動作しますが、[次へ]ボタンをタップすると何もしません。誰も私にヒントを与えてくれませんか?子ViewControllerを持つUIPageViewController
class MemberCardViewController: UIPageViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate {
lazy var viewArray: [UIViewController] = {
return [self.ViewControllerInstance(name: "CalendarView"),
self.ViewControllerInstance(name: "IdCardView"),
self.ViewControllerInstance(name: "MemberInfoView")]
}()
private func ViewControllerInstance(name: String) -> UIViewController {
return UIStoryboard(name: "MemberCardViewController", bundle: nil).instantiateViewController(withIdentifier: name)
}
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self
self.delegate = self
loadViewController(viewPosition: 1)
}
func loadViewController(viewPosition: Int) {
if let viewController = viewArray.get(at: viewPosition) {
setViewControllers([viewController], direction: .forward, animated: true, completion: nil)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
...
そして今のところ、私はまた、作成した:私はUIPageViewControllerを扱うMemberCardViewControllerを持って、この間違ったに近づいていますが、Google
私のプロジェクトで上の任意のヘルプを見つけるように見えるカントIdCardに対応するIdCardViewController(赤い背景ビュー)
class IdCardViewController: UIViewController {
var pvc = MemberCardViewController()
@IBAction func loadRight(_ sender: Any) {
pvc.loadViewController(viewPosition: 2)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
私が今直面している問題は、w hen次のボタンをIdカードでクリックすると、Member Infoビューがロードされますが、クリックすると何も起こりません。しかし、私はMemberCardViewControllerのloadViewController()
メソッドでブレークポイントを設定し、ボタンがクリックされたときにアプリケーションが到達しているのを見ることができますが、ビューはMember Info
に変わりません。
あなたのコードから問題のヒントが得られない場合は、プロジェクトを私と共有してください([email protected])。私は見て、あなたを更新します – arunjos007