如何使用来自不同课程目标的方法c

时间:2015-08-11 16:42:36

标签: objective-c methods

我想做的事情很简单,但我不明白我做错了什么。我有按钮,点击后,将转到另一页。加载不同页面的方法在不同的类中,在我想要使用它的地方初始化时,我看不到属于该类的任何方法。

这就是我所拥有的

//HomeViewController.h

#import <UIKit/UIKit.h>
#import "PhotoView.h"
#import <CoreLocation/CoreLocation.h>
#import "Reachability.h"
#import "BottomTableViewController.h"

@protocol HomeViewControllerDelegate <NSObject>

    @optional
    - (void)moveToShowBottomTableView;
    - (void)moveToHideBottomTableView;
    - (void)sendDescriptionToBottomTableView;

@end

@interface HomeViewController : UIViewController<UIScrollViewDelegate, BottomTableViewControllerDelegate>{
    IBOutlet UIScrollView *gridView;

    CLLocationManager *locationManager;
    CLLocationCoordinate2D userCoordinate;
    CLLocation *initialCoordinate;

    Reachability *internetReachable;
    Reachability *hostReachable;

}

@property (assign, nonatomic) int fromMapView;
@property (retain, nonatomic) NSArray *clusteredPhotoIDs;
@property (strong, nonatomic) IBOutlet UILabel *schoolTitle;

@property (strong, nonatomic) IBOutlet UIButton *showDetailsButton;
@property (assign, nonatomic) id<HomeViewControllerDelegate> delegate;
@property (strong, nonatomic) IBOutlet UILabel *bottomTableViewTitle;
- (IBAction)refreshButton:(id)sender;
- (IBAction)next:(id)sender;
- (IBAction)prev:(id)sender;

@property (retain, nonatomic) NSString *subviewDescription;
@property (retain, nonatomic) NSString *subviewCopyright;
@property (retain, nonatomic) NSString *subviewAddress;
@property (retain, nonatomic) NSString *photoIDNumber;

@end

BottomPanelViewController.m

 #import "HomeViewController.h"
-(IBAction)nextPage:(id)sender{
    HomeViewController *homeScreen = [[HomeViewController alloc] init];
   // [homeScreen loadPage];//THIS DOESN'T WORK
}

HomeViewController.m

- (void)loadPage:(NSInteger)page {
    // Do stuff
}

我在标记为&#34的部分出现此错误;无法正常工作&#34;: HomeViewController没有可见的@interface声明了选择器loadPage

感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:2)

它表示您的方法收到一个整数而您没有发送任何[homeScreen loadPage: (NSInteger) ];

- (void)loadPage:(NSInteger)page {
    // Do stuff
}

答案 1 :(得分:0)

阿。您需要将方法声明添加到.h文件中。在- (void)loadPage:(NSInteger)page;文件的@interface部分添加行HomeViewController.h。这将使该方法可用于其类之外。

编辑:另外,我支持我之前所说的,你还需要以某种方式呈现新的视图控制器...

另一个编辑:您还需要确保方法名称和参数列表是等效的。