UIPageViewController z różnymi ViewController, właściwy sposób?
Zasadniczo, mam kontroler widoku tabeli i normalny kontroler widoku. Chcę, aby można było przesuwać między kontrolerami widoku, tak jak na ekranie głównym aplikacji (oczywisty ten sam kontroler widoku).
Ale odkrywam, żeUIpageviewcontroller
jest używany w usaully, gdy masz wiele widoków tego samego typuviewcontroller
na przykład przesuwając między zdjęciami, możesz po prostu ustawić indeks w klasie i tablicę obrazów odnoszących się do indeksu i ustawić go w ten sposób.
Ale staram się uzyskać różne kontrolery widoku w tym zestawie. W tej chwili są dwa, ale na pewno przekroczą 4.
JestUIPageViewController
właściwy sposób ustawienia lub coś innego.
EDYCJA: Kod dodany poniżej
//
// ViewController.m
// testb
//
#import "MainPostController.h"
#import "MainTableViewController.h"
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize pageViewController;
@synthesize indexValue = _indexValue;
- (void)viewDidLoad
{
[super viewDidLoad];
self.indexValue= 1;
NSLog(@"main intitated");
// Do any additional setup after loading the view, typically from a nib.
self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewController"];
self.pageViewController.dataSource = self;
MainTableViewController *tvc = [self.storyboard instantiateViewControllerWithIdentifier:@"MainTableViewController"];
MainPostController *pvc;
NSArray *viewcontrollers =[NSArray arrayWithObjects:tvc, pvc, nil];
[self.pageViewController setViewControllers:viewcontrollers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
self.pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 30);
[self addChildViewController:pageViewController];
[self.view addSubview:pageViewController.view];
[self.pageViewController didMoveToParentViewController:self];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
if (self.indexValue == 1) {
MainPostController *pvc = [self.storyboard instantiateViewControllerWithIdentifier:@"MainPostController"];
self.indexValue = 0 ;
return pvc;
}
else return nil;
}
-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
if (self.indexValue == 0) {
MainTableViewController *tvc = [self.storyboard instantiateViewControllerWithIdentifier:@"MainTableViewController"];
self.indexValue = 1;
return tvc;
}
else return nil;
}
@end
Chcę, aby widok początkowy był kontrolerem widoku tabeli (tvc) i chcę, aby kontroler widoku Post (pcv) znajdował się po jego lewej stronie. Mogę go załadować i przesuwać między nimi łatwo, ale czasami mogę przesuwać dalej niż granice, więc jeśli zacznę od tvc -> pvc -> tvc, to mogę przejść dalej, przesuwając w prawo do tego samego tvc, a następnie granica została osiągnięta lub przejdź w drugą stronę tvc -> pvc -> tvc -> pvc -> pvc przesuwając w lewo, aby przejść do ostatniego przejścia. Granice zostały osiągnięte w końcu. Po uruchomieniu aplikacji w TVC nie mogę przejść do przodu strony (co powinno się zdarzyć) i jeśli idę tvc -> pvc i spróbuję przejść na stronę po lewej stronie, to mi nie pozwoli (co powinno się stać )
Dzięki