【发布时间】:2012-07-05 20:31:26
【问题描述】:
每当用户单击按钮时,我都会尝试显示我的弹出菜单。
我有两种方法,第一种创建按钮
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *btnMenu = [[UIBarButtonItem alloc]initWithTitle:@"Forms List" style:UIBarButtonItemStyleBordered target:self action:@selector(showPopover:)];
self.navigationItem.leftBarButtonItem = btnMenu;
}
第二个被第一个调用,显示弹出框
-(IBAction)showPopover:(id)sender{
NSLog(@"called with %@", sender);
self.popoverController = popoverController;
popoverController.delegate = self;
[popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
目前,当我单击该按钮时,没有任何反应。我认为问题在于第二种方法,主要是presentPopoverFromBarButtonItem这一行。
任何帮助将不胜感激,我真的不明白该方法调用是如何工作的。
谢谢。
编辑 1:
这是我(认为)初始化 popoverController 的代码
@interface DetailViewController ()
@property (nonatomic, retain) UIPopoverController *popoverController;
- (void)configureView;
@end
@implementation DetailViewController
@synthesize toolbar, popoverController, detailItem, detailDescriptionLabel;
【问题讨论】:
-
显示创建弹出框控制器的代码。到目前为止,您显示的代码看起来不错。
-
这一行:
self.popoverController = popoverController;与您的问题无关,但看起来像是做错了什么。大概你有一个接口变量popoverController以及一个同名属性;该属性应与@synthesize语句中的接口变量相关联,然后您将(通常)仅在代码中的其他任何地方引用self.popoverController。 -
我编辑了它。我首先在.m中声明了popoverController,然后我在.h中设置了属性和合成
标签: objective-c ios ipad uipopovercontroller