'[<InstructionContentViewController] этот класс не соответствует значению ключа, соответствующему кодированию для ключа обучения ImageView

У меня небольшая проблема с моим кодом. Я продолжаю получать следующее сообщение, когда пытаюсь установить в своем приложении два контроллера просмотра страниц. Оба используются для разных вещей. Я скопировал и вставил код для первого реализованного контроллера страниц, а затем изменил имена, чтобы избежать конфликтов. Недавно я начал получать это сообщение об ошибке, и теперь моя программа больше не может работать. Может кто-нибудь сказать, пожалуйста, почему это происходит?

Я также получаю ошибку, которая говорит, что метод "pageViewController:viewControllerBeforeViewController:" в протоколе не реализован. Я не слишком уверен, если это связанная проблема, но кто-нибудь знает, почему я это понимаю?

#import "StorageViewController.h"
#import "InstructionContentViewController.h"

@interface StorageViewController ()

@end

@implementation StorageViewController


- (void)viewDidLoad
{
        [super viewDidLoad];
        // Create the data model
        _pageInstructTitles = @[@"Over 200 Tips and Tricks", @"Discover Hidden Features", @"Bookmark Favorite Tip", @"Free Regular Update"];
        _pageInstructImages = @[@"instructions1.png", @"instructions2.png", @"instructions3.png", @"instructions4.png"];

        // Create page view controller
        self.instructViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"InstructionViewController"];
        self.instructViewController.dataSource = self;

        InstructionContentViewController *startingInstructViewController = [self viewControllerAtIndex:0];
        NSArray *viewInstructControllers = @[startingInstructViewController];
        [self.instructViewController setViewControllers:viewInstructControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

        // Change the size of page view controller
        self.instructViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 30);

        [self addChildViewController:_instructViewController];
        [self.view addSubview:_instructViewController.view];
        [self.instructViewController didMoveToParentViewController:self];

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)startInstructWalkthrough:(id)sender {

    InstructionContentViewController *startingInstructViewController = [self viewControllerAtIndex:0];
    NSArray *viewControllers = @[startingInstructViewController];
    [self.instructViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionReverse animated:NO completion:nil];
}


#pragma mark - Page View Controller Data Source Methods:

- (UIViewController *)instructViewController:(UIPageViewController *)instructViewController viewControllerBeforeViewController:(UIViewController *)viewInstructController
{
    NSUInteger index = ((InstructionContentViewController*) viewInstructController).instructPageIndex;

    if ((index == 0) || (index == NSNotFound)) {
        return nil;
    }

    index--;
    return [self viewControllerAtIndex:index];
}


- (UIViewController *)instructViewController:(UIPageViewController *)instructViewController viewControllerAfterViewController:(UIViewController *)viewInstructController
{
    NSUInteger index = ((InstructionContentViewController*) viewInstructController).instructPageIndex;

    if (index == NSNotFound) {
        return nil;
    }

    index++;
    if (index == [self.pageInstructTitles count]) {
        return nil;
    }
    return [self viewControllerAtIndex:index];
}

- (InstructionContentViewController *)viewControllerAtIndex:(NSUInteger)index
{
    if (([self.pageInstructTitles count] == 0) || (index >= [self.pageInstructTitles count])) {
        return nil;
    }

    // Create a new view controller and pass suitable data.
    InstructionContentViewController *instructionContentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"InstructionContentViewController"];
    instructionContentViewController.instructImageFile = self.pageInstructImages[index];
    instructionContentViewController.instructTitleText = self.pageInstructTitles[index];
    instructionContentViewController.instructPageIndex = index;

    return instructionContentViewController;


}

- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)instructViewController
{
    return [self.pageInstructTitles count];
}

- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)instructViewController
{
    return 0;
}



@end

0 ответов

Другие вопросы по тегам