, поэтому я довольно новичок в Obj-C и попробовал посмотреть пример кода и другие онлайн-ресурсы, чтобы ответить на мой вопрос, но я не могу найти ничего, что действительно помогает. По сути, я пытаюсь добавить несколько UIViewControllers, которые я создал в Storyboard, в UIPageViewController - первое, на что я обратился за помощью, был сам Xcode с использованием шаблона приложения на основе PageBased. Это действительно помогло довольно много, и у меня появился PageController. Затем я обратился к онлайн-ресурсам, но большинство (если не все) используют один viewController (например, this). Затем я обратился к StackOverflow и нашел следующее: How to implement UIPageViewController that utilizes multiple ViewControllers. Вышеуказанные ресурсы у меня это далеко: В PageViewController.h:Как добавить несколько ViewControllers в мой UIPageViewController?
#import <UIKit/UIKit.h>
@interface PageViewController : UIPageViewController <UIPageViewControllerDataSource>
@end
В PageViewController.m:
#import "PageViewController.h"
@interface PageViewController()
@end
@implementation PageViewController {
NSArray *viewControllers;
UIViewController *first;
UIViewController *second;
UIViewController *third;
UIViewController *fourth;
UIViewController *fifth;
}
- (UIViewController *)first {
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Secondary" bundle:nil];
first = [sb instantiateViewControllerWithIdentifier:@"1"];
return first;
}
- (UIViewController *)second {
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Secondary" bundle:nil];
second = [sb instantiateViewControllerWithIdentifier:@"2"];
return second;
}
- (UIViewController *)third {
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Secondary" bundle:nil];
third = [sb instantiateViewControllerWithIdentifier:@"3"];
return third;
}
- (UIViewController *)fourth {
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Secondary" bundle:nil];
fourth = [sb instantiateViewControllerWithIdentifier:@"4"];
return fourth;
}
- (UIViewController *)fifth {
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Secondary" bundle:nil];
fifth = [sb instantiateViewControllerWithIdentifier:@"5"];
return fifth;
}
- (void)viewDidLoad {
[super viewDidLoad];
self.dataSource = self;
// Aggancio il view controller iniziale.
[self setViewControllers:@[self.first]
direction:UIPageViewControllerNavigationDirectionForward
animated:YES
completion:nil];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
UIViewController *nextViewController = nil;
if (viewController == self.first) {
nextViewController = self.second;
}
if (viewController == self.second) {
nextViewController = self.third;
}
if (viewController == self.third) {
nextViewController = self.fourth;
}
if (viewController == fourth) {
nextViewController = self.fifth;
}
return nextViewController;
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
UIViewController *prevViewController = nil;
if (viewController == self.fifth) {
prevViewController = self.fourth;
}
if (viewController == self.fourth) {
prevViewController = self.third;
}
if (viewController == self.third) {
prevViewController = self.second;
}
if (viewController == self.second) {
prevViewController = self.first;
}
return prevViewController;
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
Весь этот код делает это загрузить первый контроллер представления, которое в настоящее время салфетки возможно, но на самом деле не навредит никому - почему это ?. Что я делаю не так? Вышеупомянутые ресурсы использовали заголовки и страницы для создания представлений, и я действительно не знаю, как это сделать. Кто-нибудь возражал бы, чтобы я направлял меня или подталкивал меня в правильном направлении? Любая помощь будет принята с благодарностью. Благодаря!
Вы рассмотрели методы UIPageViewControllerDataSource. https://developer.apple.com/library/ios/documentation/Uikit/reference/UIPageViewControllerDataSourceProtocolRef/index.html – Sandeep