2012-07-05 24 views
0

我試圖顯示我的彈出式菜單,只要用戶點擊一個按鈕。presentPopoverFromBarButtonItem

我有兩種方法,第一個創建按鈕

- (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:

下面是代碼,你有你的初始化我UIPopoverController(認爲)初始化popoverController

@interface DetailViewController() 
@property (nonatomic, retain) UIPopoverController *popoverController; 
- (void)configureView; 
@end 

@implementation DetailViewController 

@synthesize toolbar, popoverController, detailItem, detailDescriptionLabel; 
+0

顯示在您創建酥料餅的控制器代碼。您迄今爲止顯示的代碼看起來不錯。 – Sven 2012-07-05 20:37:16

+0

這一行:'self.popoverController = popoverController;'與你的問題沒有任何關係,但看起來像某些事情做錯了。大概你有一個接口變量'popoverController'以及一個同名的屬性;該屬性應該與'@ synthesize'語句中的接口變量相關聯,然後您(通常)只會在代碼中的其他任何地方引用'self.popoverController'。 – MusiGenesis 2012-07-05 20:47:14

+0

我編輯它。我首先在.m中聲明瞭popoverController,然後我設置屬性並在.h – BloonsTowerDefence 2012-07-05 20:57:04

回答

1

UIPopoverController *popoverController = [[UIPopoverController alloc] initWithContentViewController:VCTHATGOESINSIDE]; 

如果一切都失敗,請嘗試從rect中呈現它並指定CGRect。希望這可以幫助!

編輯:initWith * 內容 *視圖控制器

+0

中合成對不起我的啞巴,但VCTHATGOESINSIDE會是什麼? – BloonsTowerDefence 2012-07-05 20:52:22

+0

我應該更好地解釋,我的壞。 'UIPopoverController'需要用ContentViewController('UIViewController')初始化,這就是你想在popover矩形內顯示的內容。 – ohr 2012-07-05 20:55:48

+0

所以(如果你看看我在OP中編輯的),我的* popoverController聲明是不完整的呢? – BloonsTowerDefence 2012-07-05 20:58:26