Quando l'utente si trova nella prima pagina di un UIPageViewController
e tenta di tornare indietro, restituisco semplicemente nil. In iOS 5 funziona bene. Sta causando un arresto in iOS 6.Come impostare la prima pagina in UIPageViewController
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'The number of view controllers provided (0) doesn't match the number required (1) for the requested transition'
Ecco il mio codice. Quando si restituisce contentViewController
anziché nil
, funziona correttamente. Cosa dovrei inserire al posto di nil
?
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
viewControllerBeforeViewController:(UIViewController *)viewController {
contentViewController = [[ContentViewController_iPhone alloc] init];
int currentIndex = [self.modelArray indexOfObject:[(ContentViewController_iPhone *)viewController labelContents]];
if ((currentIndex == 0) || (currentIndex == NSNotFound)) {
//if on the first page, can't go back
return nil;
}
contentViewController.labelContents = [self.modelArray objectAtIndex:currentIndex - 1];
return contentViewController;
}
Puoi semplicemente restituire 'self' invece di' nil'? Questa è una congettura da parte mia. –
@JoshuaSmith L'ho provato, ma sto ancora avendo lo stesso problema. Grazie comunque. –
Restituire 'nil' è esattamente il modo in cui il modello di progetto" Applicazione basata su pagina "di Apple gestisce la prima e l'ultima pagina. Penso che tu abbia qualche altro problema. Imposta un punto di interruzione di eccezione e pubblica la traccia stack completa dell'eccezione. –