2011-12-21 126 views
1

難以獲得UIButton要顯示的項目..我想將幾個UIButtons放入我的UIPopUpController之內。我正在做故事板中的所有內容,我需要以編程方式完成本節。UIButton UIPopUpController以編程方式

- (void)showPopover:(id)sender 
{ 
    if(![popoverController isPopoverVisible]) 
    { 
     myPopOver = [[PopUp alloc] init]; 
     popoverController = [[UIPopoverController alloc] initWithContentViewController:myPopOver] ; 
     [popoverController setPopoverContentSize:CGSizeMake(300, 200.0f)]; 
     permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
     CGRect rect = (CGRect)[sender frame]; 
     rect.origin.y = self.view.frame.size.height - rect.size.height;   
     [popoverController presentPopoverFromRect:rect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

    } 
    else 
    { 
     [popoverController dismissPopoverAnimated:YES]; 
    } 
} 
+0

此示例中沒有任何與「UIBarButtonItem」有關的內容......您有什麼問題? – 2011-12-21 21:01:57

+0

哦,好的。 OP沒有使用'-presentFromBarButtonItem:permittedArrowDirections:animated:'扔了我的事實。這是明顯的選擇。 – 2011-12-22 01:04:00

+0

對不起,它應該說UIButton(不是UIBarButton),我很抱歉讓修訂需要這麼長時間..我發佈了,這是我檢查過的第一個。我試圖在一個空的UIPopUpController中放置幾個​​UIButtons。 – DJPlayer 2011-12-22 12:53:15

回答

1

你可以使用一個UINavigationController(它已經是一個導航欄,您可以將按鈕項),並將其添加爲UIPopoverController的內容。 UINavigationController可以使用initWithRootViewController方法進行隔離。在這種情況下,控制器將是您的Popup類。例如,您showPopover方法裏面,你可以做到以下幾點:現在

PopUp* myPopOver = [[PopUp alloc] init]; 
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:myPopOver]; 
popoverController = [[UIPopoverController alloc] initWithContentViewController:navController]; 
// do other stuff here to present you UIPopoverController 
[myPopOver release]; 
[navController release]; 

,您的彈出類裏面,viewDidLoad方法中,你可以自定義的UINavigationController的導航欄。例如:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIBarButtonItem *aButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain target:self action:@selector(somethingSelector:)];   
    self.navigationItem.rightBarButtonItem = aButtonItem; 
    [aButtonItem release]; 
} 

其中somethingSelector是這樣的:

- (void)somethingSelector:(id)sender 
{ 
    // your custom actions 
} 

編輯

或者你能避免使用的UINavigationController和創建UIToolbar您的彈出類中。在UIToolbar裏面你可以附加UIBarButtonItems。請參閱UIToolbar Class Reference

+0

如果是我發佈的使用UIButton的問題(固定文章)會怎麼樣。我需要添加CGRect並將UIButtons放置在coodinates中嗎? – DJPlayer 2011-12-22 13:04:08