【问题标题】:ViewController inheritance. can not find interfaceViewController 继承。找不到接口
【发布时间】:2012-10-22 23:04:26
【问题描述】:

我有一个基本视图控制器:

@interface NEViewControllerWithSidebarMenu : UIViewController <UITableViewDataSource, UITableViewDelegate>
{
    UIView *viewWithContent;
    UIView *sidebarView;
    UITableView *sidebarTableView;
}

@property (nonatomic, retain) UIView *viewWithContent;
@property (nonatomic, retain) UIView *sidebarView;
@property (nonatomic, retain) UITableView *sidebarTableView;

-(void)menuButtonPressed:(id)sender;
-(void)loadSidebar;

@end

它的实现:

#import "NEViewControllerWithSidebarMenu.h"

@interface NEViewControllerWithSidebarMenu ()

@end

@implementation NEViewControllerWithSidebarMenu

@synthesize sidebarView, sidebarTableView;
@synthesize viewWithContent;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
}

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

#pragma mark - Actions

-(void)menuButtonPressed:(id)sender
{
    ... do some things here
}


-(void)loadSidebar
{
    .....        
    UIButton *menuButton=[UIButton buttonWithType:UIButtonTypeRoundedRect];
    [menuButton setFrame:CGRectMake(0.0, 0.0, 80, 40)];
    [menuButton setTitle:@"Меню" forState:UIControlStateNormal];
    [menuButton addTarget:self action:@selector(menuButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *menuBarButtonItem=[[UIBarButtonItem alloc] initWithCustomView:menuButton];
    self.navigationItem.leftBarButtonItem=menuBarButtonItem;
    .....

}

-(void)changeToViewController:(UIViewController *)viewController
{
    UINavigationController *navController = self.navigationController;
    [navController popViewControllerAnimated:NO];
    [navController pushViewController:viewController animated:NO];
}

-(void)popViewControllerAnimated
{
    [self.navigationController popViewControllerAnimated:YES];
}

-(void)pushViewControllerAnimated:(UIViewController *)viewController
{
    [self.navigationController pushViewController:viewController animated:YES];
}

#pragma mark - UITableViewDataSourse

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    switch (section)
    {
        case 0:
        {
            return 6;
            break;
        }
        default:
        {
            NSLog(@"PANIC: unknown section index");
            return 13;
            break;
        }
    };
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ......
}

#pragma mark - UITableViewDelegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    .......
}

@end

现在我声明一个从 NEViewControllerWithSidebarMenu 继承的控制器我得到错误:

@interface NECompanyRootViewController : NEViewControllerWithSidebarMenu
{
    //
}

@end

找不到'NEViewControllerWithSidebarMenu'的接口声明,'NECompanyRootViewController'的超类

请帮帮我。为什么会出现此错误以及如何解决?

【问题讨论】:

  • 你导入头文件了吗? #import "NEViewControllerWithSidebarMenu.h"
  • 是的,我已经导入了。只是没有在代码清单中发布它
  • 已解决。存在导入问题。在声明 NEViewControllerWithSidebarMenu 的接口之前,我导入了继承自 NEViewControllerWithSidebarMenu 的 NECompanyRootViewController。通过在 .m 文件中导入 NECompanyRootViewController 修复

标签: iphone objective-c ios cocoa-touch uiviewcontroller


【解决方案1】:

先导入Header

#import "NEViewControllerWithSidebarMenu.h" 
@interface NECompanyRootViewController : NEViewControllerWithSidebarMenu
{
    //
}

@end

【讨论】:

  • 你发现问题了吗?
猜你喜欢
  • 1970-01-01
  • 2021-04-10
  • 2011-03-22
  • 2010-11-30
  • 2023-03-13
  • 2014-02-18
  • 2010-09-21
相关资源
最近更新 更多