UİPageViewController, nasıl düzgün sipariş veri kaynağı tarafından belirtilen bozmadan belirli bir sayfaya atlamak mı?
Belirli bir sayfa için UIPageViewController
bir sıçrama yapmak için nasıl hakkında birkaç soru buldum ama cevapları yok kabul etmek gibi atlama ile ek bir sorun fark ettim.
Benim iOS app detaylara girmeden çağrı takvimine benzer olan), burada yaşıyorum. ** 3, bir dizi Geçerli Görünüm denetleyicisi ilan ediyorum, ve bir veri kaynağı uygulamak.
// end of the init method
pageViewController = [[UIPageViewController alloc]
initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll
navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal
options:nil];
pageViewController.dataSource = self;
[self jumpToDay:0];
}
//...
- (void)jumpToDay:(NSInteger)day {
UIViewController *controller = [self dequeuePreviousDayViewControllerWithDaysBack:day];
[pageViewController setViewControllers:@[controller]
direction:UIPageViewControllerNavigationDirectionForward
animated:YES
completion:nil];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
NSInteger days = ((THDayViewController *)viewController).daysAgo;
return [self dequeuePreviousDayViewControllerWithDaysBack:days 1];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
NSInteger days = ((THDayViewController *)viewController).daysAgo;
return [self dequeuePreviousDayViewControllerWithDaysBack:days - 1];
}
- (UIViewController *)dequeuePreviousDayViewControllerWithDaysBack:(NSInteger)days {
return [[THPreviousDayViewController alloc] initWithDaysAgo:days];
}
Edit Not: dequeuing yöntemi için basitleştirilmiş bir kod ekledim. Hatta bu kafir uygulama ile sayfa düzeni ile tam olarak aynı sorun bende de var.
Başlatma tüm beklendiği gibi çalışır. Artan belleği de gayet iyi çalışıyor. Sorun olursa ben hiç jumpToDay
tekrar arama, düzeni karmakarışık olur.
Kullanıcı gün -5 gün atlar ise 1, sola doğru ilerleyin gün -5 daha uygun gün yerine 0 ortaya çıkaracaktır. Bu bir şey UIPageViewController
yakındaki sayfalarda tutar nasıl bir ilgisi var gibi görünüyor, ama değil önbelleği yenilemek için zorlayacak bir yöntem herhangi bir referans bulamıyorum.
Herhangi bir fikir?
CEVAP
Matt Neuburg belgeleri tam olarak bu sorundan Programming iOS6, ve ben aslında onun çözümü biraz şu anda kabul cevabı çok daha iyi hissettiriyor bulundu. Harika çalışan bu çözüm,,, ve jarringly Bu sayfayı değiştirmek istediğiniz sayfa ile sonra/önce görüntüye animasyon olumsuz bir yan etkisi yoktur. Garip bir kullanıcı deneyimi gibi hissettim, ve Matt'in çözüm ilgileniyor.
__weak UIPageViewController* pvcw = pvc;
[pvc setViewControllers:@[page]
direction:UIPageViewControllerNavigationDirectionForward
animated:YES completion:^(BOOL finished) {
UIPageViewController* pvcs = pvcw;
if (!pvcs) return;
dispatch_async(dispatch_get_main_queue(), ^{
[pvcs setViewControllers:@[page]
direction:UIPageViewControllerNavigationDirectionForward
animated:NO completion:nil];
});
}];
Nasıl Bahar JNDI veri Kaynağı tarafınd...
Nasıl sipariş sonra Oracle bir sorgu t...
MetadataException: belirtilen meta ver...
Nasıl toplam çizgiler Git deposu belir...
Belirli bir URL C Professional (Servic...