2012-03-19 73 views
1

閱讀蘋果公司的例子後:MultipleDetailViews其中演示瞭如何使用UIPopOverController有兩個細節視圖控制器,我無法弄清楚如何將自定義視圖添加到其存在於splitViewControllerbarButtonItem委託方法:添加自定義視圖的UIBarButtonItem一酥料餅的

-(void)splitViewController:(UISplitViewController*)svc willHideViewController: (UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController:(UIPopoverController*)pc { 

    self.popoverController = pc; 
    barButtonItem.text = @"root view controller"; 
    self.rootPopoverButtonItem = barButtonItem; 

    UIViewController <SubstitutableDetailViewController> *detailViewController = [mySplitViewController.viewControllers objectAtIndex:0]; 
    [detailViewController showRootPopoverButtonItem:self.rootPopoverButtonItem]; 
} 

的酥料餅的按鈕,它的默認形狀效果很好,但是當我嘗試這樣的事:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
UIImage *customImage = [UIImage imageNamed:@"popOver.png"]; 
[button setBackgroundImage: [UIImage imageNamed:@"popOver.png"] forState:UIControlStateNormal]; 
button.frame= CGRectMake(0.0, 0.0, customImage.size.width, customImage.size.height); 
[button addTarget:self action:@selector(???) forControlEvents:UIControlEventTouchUpInside]; 
barButtonItem.customView = button; 

我不知道此按鈕的選擇是這將使popover正確顯示,我的popover工作正常,沒有使用UISplitViewController的委託方法的選擇器,所以我應該在這裏放置什麼樣的選擇器?

回答

5

爲什麼你要添加一個按鈕到欄按鈕項而不是圖像視圖?使用圖像視圖(或禁用按鈕上的用戶交互)將導致應用程序使用條形按鈕項目選擇器和目標。

如果你仍然想使用一個單獨的按鈕,那麼你可以做的是:

[button addTarget:barButtonItem.target action:barButtonItem.action forControlEvents:UIControlEventTouchUpInside]; 

這將在默認欄按鈕項目目標和行動複製。

+0

非常感謝你,很棒的回答。 – JAHelia 2012-03-20 08:47:38