如何修复实施错误?

时间:2014-03-05 15:43:38

标签: ios ios7

我有一个错误,但应用程序运行正常,它在一个UIscroll中使用3个视图控制器的页面控件。错误显示为“'changePage的'方法定义:'未找到'< --- @ implementation PagerViewController \我该如何解决这个问题?

通过Google网站按需提供源文件!

#import "PagerViewController.h"

@interface PagerViewController ()
@property (assign) BOOL pageControlUsed;
@property (assign) NSUInteger page;
@property (assign) BOOL rotating;
- (void)loadScrollViewWithPage:(int)page;
@end

@implementation PagerViewController

@synthesize scrollView;
@synthesize pageControl;
@synthesize pageControlUsed = _pageControlUsed;
@synthesize page = _page;
@synthesize rotating = _rotating;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    [self.scrollView setPagingEnabled:YES];
    [self.scrollView setScrollEnabled:YES];
    [self.scrollView setShowsHorizontalScrollIndicator:NO];
    [self.scrollView setShowsVerticalScrollIndicator:NO];
    [self.scrollView setDelegate:self];
}

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    for (NSUInteger i =0; i < [self.childViewControllers count]; i++) {
        [self loadScrollViewWithPage:i];
    }

    self.pageControl.currentPage = 0;
    _page = 0;
    [self.pageControl setNumberOfPages:[self.childViewControllers count]];

    UIViewController *viewController = [self.childViewControllers objectAtIndex:self.pageControl.currentPage];
    if (viewController.view.superview != nil) {
        [viewController viewWillAppear:animated];
    }

        self.scrollView.contentSize = CGSizeMake(scrollView.frame.size.width *     [self.childViewControllers count], scrollView.frame.size.height);
    }


    - (void)loadScrollViewWithPage:(int)page {
        if (page < 0)
            return;
        if (page >= [self.childViewControllers count])
            return;

        // replace the placeholder if necessary
        UIViewController *controller = [self.childViewControllers objectAtIndex:page];
        if (controller == nil) {
            return;
        }

        // add the controller's view to the scroll view
        if (controller.view.superview == nil) {
            CGRect frame = self.scrollView.frame;
            frame.origin.x = frame.size.width * page;
            frame.origin.y = 0;
            controller.view.frame = frame;
                [self.scrollView addSubview:controller.view];
            }
        } 


     // At the begin of scroll dragging, reset the boolean used when scrolls originate from the UIPageControl
    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
        _pageControlUsed = NO;
    }

     // At the end of scroll animation, reset the boolean used when scrolls originate from the UIPageControl
     - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    _pageControlUsed = NO;
     }

    @end

错误声明是“'更改页面的方法定义:未找到”

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

该错误(实际上是警告,而不是错误)告诉您该类的@interface表示类对象应该响应选择器changePage:(通过直接定义或继承/委托)但是你的@implementation部分没有在任何地方定义选择器。

这是一个警告,因为它不会停止编译,但是有可能在您导入.h文件的某个地方,您在该类的实例上调用函数changePage:。这将使你的应用程序崩溃,因为它试图在某处找到该功能定义但不能。

解决此警告的方法是在changePage:中为该类定义函数@implementation

相关问题