Sembra che il pulsante semplicemente non venga premuto.Come può un UIViewController all'interno di un UIPageController ottenere eventi di tocco?
Ho provato:
UIPageViewController Gesture recognizers
Tuttavia, ecco la cattura
se transizione di pagina di UIPageViewController è UIPageViewControllerTransitionStyleScroll quindi
self.view.gestureRecognizers = self.pageViewController.gestureRecognizers;
NSLog(@"%@",self.pageViewController.gestureRecognizers.description);
NSLog(@"%@",self.pageViewController.gestureRecognizers.description);
sarà semplicemente vuoto.
Ho provato ad aggiungere il mio gestureRecoqnizers anziché il pulsante nella sottoview di UIViewControllers. Ancora non funziona.
Quindi ho un UIPageViewController che visualizza un UIViewController la cui vista ha un pulsante. Come faccio a premere quel pulsante?
Ho anche provato entrambe le soluzioni qui:
http://emlyn.net/posts/stopping-gesture-recognizers-in-their-tracks
Nessuno lavora. Prima di tutto non posso disabilitare i recoqnizers di gesti di UIPageViewController perché non esiste una cosa del genere. Nella modalità scrollView, UIPageViewController non dispone di ricognitori di gesti.
Ho provato ad aggiungere i miei ricognizioni di gesti al mio pulsante ma quelli non vengono mai chiamati.
Desidero che UIPageViewController gestisca comunque lo scorrimento. Ma non toccare.
Non riesco ad accedere ai recoqnizers di gesture di UIPageViewControllers perché self.pageViewController.gestureRecognizers è vuoto. UIPageViewController sembra semplicemente "assorbire" tutti gli eventi tap. Quindi il mio pulsante non capisce.
posso aggiungere il pulsante di fronte UIPageViewController ma quel pulsante assorbirà l'azione strisciata cui voglio UIPageVIewController a gestire ancora.
A proposito, se si utilizza il modello da IOS (Creare un'applicazione pagina basata, e cambiare la transizione per scorrere le pageviewcontroller.gesturerecoqnizers saranno vuoti
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// Configure the page view controller and add it as a child view controller.
self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];//Turn this to scroll view
self.pageViewController.delegate = self;
SDDataViewController *startingViewController = [self.modelController viewControllerAtIndex:0 storyboard:self.storyboard];
NSArray *viewControllers = @[startingViewController];
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:NULL];
self.pageViewController.dataSource = self.modelController;
[self addChildViewController:self.pageViewController];
[self.view addSubview:self.pageViewController.view];
// Set the page view controller's bounds using an inset rect so that self's view is visible around the edges of the pages.
CGRect pageViewRect = self.view.bounds;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
pageViewRect = CGRectInset(pageViewRect, 40.0, 40.0);
}
self.pageViewController.view.frame = pageViewRect;
[self.pageViewController didMoveToParentViewController:self];
// Add the page view controller's gesture recognizers to the book view controller's view so that the gestures are started more easily.
self.view.gestureRecognizers = self.pageViewController.gestureRecognizers;
NSLog(@"%@",self.pageViewController.gestureRecognizers.description); //This is empty
while (false);
}
Ha il pulsante ha un obiettivo e l'azione? – Wain
ovviamente. Ho capito bene. Funziona bene se non all'interno di UIPageViewController. –
Allora, perché il riconoscimento dei gesti? E hai impostato il tuo controller come delegato e controllato che i metodi delegati siano stati chiamati? – Wain