次のコードをビルドしようとすると、コンパイラエラーが発生します。その単純なビュー(UntitledViewController)には、他のビュー(popoverview)でポップアップを作成して表示するshowPopUpを呼び出すバーボタンアイテムを備えたナビゲーションバーがあります。
Popoverviewには、ポップアップを閉じようとしているhidePopOverを呼び出すボタンがありますが、このコンパイラエラーが発生します。
"expected ':' before '.' token"
この行で:
[UntitledViewController.popOver dismissPopoverAnimated:YES];
コード行をコメントアウトするか、NSLogを配置すると、正常に機能します
UntitledViewController
/*--UntitledViewController.h--*/
#import <UIKit/UIKit.h>
@interface UntitledViewController : UIViewController {
UIPopoverController *popOver;
IBOutlet UIBarButtonItem *popOverbutton;
}
@property (nonatomic, retain) UIPopoverController *popOver;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *popOverbutton;
-(IBAction)showPopUp;
@end
/*--UntitledViewController.m--*/
#import "UntitledViewController.h"
#import "popoverview.h"
@implementation UntitledViewController
@synthesize popOverbutton, popOver;
-(IBAction)showPopUp {
popoverview *popView = [[popoverview alloc] initWithNibName:@"popoverview" bundle:nil];
popOver = [[UIPopoverController alloc] initWithContentViewController:popView];
[popOver presentPopoverFromBarButtonItem:popOverbutton permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}
...
popoverview
/*--popoverview.h--*/
#import <UIKit/UIKit.h>
@interface popoverview : UIViewController {
}
-(IBAction)hidePopOver;
@end
/*--popoverview.m--*/
#import "popoverview.h"
#import "UntitledViewController.h"
@implementation popoverview
-(IBAction)hidePopOver {
[UntitledViewController.popOver dismissPopoverAnimated:YES]; (ERROR "expected ':' before '.' token")
}