一千萬個為什麽

搜索

如何掛鉤iPad彈出工具欄按鈕的操作方法?


我正在使用拆分視圖模板來創建一個簡單的拆分視圖,當然,它在縱向模式下有一個彈出窗口。我正在使用模板生成的默認代碼,添加/刪除工具欄項並設置彈出控制器並將其刪除。這兩個方法是splitViewController:willShowViewController:...和splitViewController:willHideViewController:...

我試圖弄清楚如果用戶在顯示彈出窗口時點擊工具欄按鈕,彈出窗口就會消失。如果你點擊彈出窗口外的任何地方,你可以讓彈出窗口消失而不選擇項目,但如果用戶再次點擊按鈕我也想讓它消失。

我被困的地方是:似乎沒有一種明顯的,簡單的方法來掛鉤工具欄按鈕的動作。我可以使用調試器告訴我在按鈕上調用的操作是showMasterInPopover。我承認,我不熟悉以編程方式與選擇器合作。

我可以以某種方式編寫一個動作並將其設置在工具欄上,而不會覆蓋已存在的動作嗎?例如添加一個調用現在那個的動作?或者我是否必須編寫一個動作來顯示/隱藏自己的彈出窗口(現在可能是由分割視圖控制器在幕後進行的行為???)。

或者我錯過了一種簡單的方法來將此行為添加到此按鈕而不更改為我設置的現有行為?

謝謝!

最佳答案

所以事實證明,通過實現SplitViewController willPresentViewController方法點擊barButtonItem可以使popover解除,如下所示:

- (void) splitViewController:(UISplitViewController *)svc 
           popoverController: (UIPopoverController *)pc
   willPresentViewController: (UIViewController *)aViewController
{
    if (pc != nil) {
        [pc dismissPopoverAnimated:YES];
    }
}

轉載註明原文: 如何掛鉤iPad彈出工具欄按鈕的操作方法?

猜你喜歡