Je suis nouveau sur iOS et j'ai actuellement 3 vues et je veux utiliser le geste de balayage pour naviguer entre eux. Balayage fonctionne. La vue bg rouge se charge d'abord comme je le veux, et le balayage fonctionne bien, mais appuyer sur le bouton Suivant ne fait rien. Quelqu'un pourrait-il me donner un indice? Je me rapproche de ce mal, mais cant semblent trouver l'aide sur googleUIPageViewController avec les contrôleurs ViewController
Dans mon projet, j'ai un MemberCardViewController qui gère la 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.
}
}
...
Et pour l'instant, j'ai aussi créé un IdCardViewController qui correspond à la carte d'identité (vue sur fond rouge)
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.
}
}
la question que je suis confronté est maintenant que w Lorsque le bouton Suivant est cliqué dans la carte d'identité, je veux charger la vue Infos sur le membre, mais pour le moment rien ne se passe quand on clique dessus. Cependant, j'ai mis en place des points d'arrêt dans la méthode loadViewController()
de MemberCardViewController et je peux voir que l'application l'atteint quand on clique sur le bouton, mais la vue ne change pas en Member Info
.
ne pas avoir une idée du problème de votre code, pouvez-vous s'il vous plaît partager votre projet avec moi ([email protected]). Je vais jeter un oeil et vous mettre à jour – arunjos007