CXSwipeNavigation
CXSwipeNavigation is a series of classes that allows you to swipe vertically between UITableView
and UICollectionView
. Uses the interactive transitions API for reversability.
1. Build your UITableViewController and UICollectionViewControllers as subclasses of CXSwipeTableViewController and CXSwipeCollectionViewController, respectively.
MYTableViewController.h
@interface MYTableViewController : CXSwipeTableViewController
// ...
@end
MYCollectionViewController.h
@interface MYCollectionViewController : CXSwipeCollectionViewController
// ...
@end
2. Use CXSwipeNavigationController as your main navigation controller and set the data source.
MYAppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//...
self.viewControllers = @[[MYTableViewController alloc] init], [MYTableViewController alloc] init], [MYCollectionViewController alloc] init], [MYCollectionViewController alloc] init]];
self.navigationController = [[CXApplicationViewController alloc] initWithRootViewController:self.viewControllers.firstObject];
self.navigationController.dataSource = self;
//...
}
3. Implement the methods in CXSwipeNavigationControllerDataSource.
MYAppDelegate.m
- (NSUInteger)numberOfViewControllersForSwipeNavigationController:(CXSwipeNavigationController *)navigationController
{
return self.viewControllers.count;
}
- (UIViewController *)swipeNavigationController:(CXSwipeNavigationController *)navigationController viewControllerAtIndex:(NSUInteger)index
{
return self.viewControllers[index];
}
Additionally, you can fine-tune the transition using the translationThreshold
and velocityThreshold
properties in order to avoid accidental transitions.
Todo:
- Scrolling not re-enabling after transition cancelled
- Add example project