UIPageViewController с различными ViewControllers, правильно?
По сути, у меня есть контроллер табличного представления и обычный контроллер представления, я хочу сделать так, чтобы я мог перемещаться между контроллерами представления, как на домашнем экране приложения (очевидно, тот же тип контроллера представления).
Но я обнаружил, чтоUIpageviewcontroller
обычно используется, когда у вас есть несколько просмотров одного и того же типаviewcontroller
например, проводя между изображениями, вы можете просто установить индекс в классе и массив изображений, относящихся к индексу, и настроить его таким образом.
Но я'Я пытаюсь получить различные контроллеры представления в этой установке. Прямо сейчасs два, но определенно увеличится примерно до 4.
ЯвляетсяUIPageViewController
правильный способ настроить это или что-то еще.
РЕДАКТИРОВАТЬ: код добавлен ниже
//
// 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
Я хочу, чтобы начальное представление было контроллером представления таблицы (tvc), и я хочу, чтобы контроллер представления представления (pvc) был слева от него. Я могу загрузить его и легко провести между ними, но иногда я могу провести дальше, чем границы, поэтому, в основном, если я начинаю на ТВ ->пвх ->TVC, то я могу пойти дальше, проведя вправо до того же TVC, тогда граница достигнута или пойти другим путем TVC ->пвх ->ТВЦ ->пвх ->ПВХ, проведя влево для последнего перехода. Границы достигаются в конце. Как только приложение изначально запускается на ТВ, я не могу перейти на страницу (что и должно произойти), и если я иду на ТВ ->Пвх и попробуйте перейти на страницу слева, это не позволит мне (что должно произойти)
Спасибо