2012-03-16 70 views
2

我有一個設置彈出窗口。我在該popover中有一個按鈕(更多信息)。當用戶點擊該按鈕時,我想提出另一個視圖,並且想要解除流行。在iOS中,如何讓彈出窗口本身靠近?

我該如何從彈出窗口中的「我的更多信息」按鈕執行此操作?

目前我有一個處理的按鈕按下一個功能:

- (IBAction)showFullVersionInfo:(id)sender 
    { 
    [self dismissPopoverAnimated:YES]; 
    parent.settingsPopover = nil; 

    //need to show more Info... 

    } 

母公司持有的引用「settingsPopover」到酥料餅的,我想將其清除。

+0

看起來你沒有麻煩解僱popover,但你想知道如何顯示另一種觀點?您想在何處顯示此視圖與彈出窗口之外的任何用戶界面有關? – rickster 2012-03-16 22:52:24

+0

@rickster上面的代碼不能刪除彈出窗口...仍然試圖讓它工作。 – milesmeow 2012-03-17 07:34:41

回答

4

你不想從popover控制器裏面做這個。 popover控制器應該只管理popover的內容,而不是popover的顯示/隱藏方式和時間。

您只能在父控制器中執行此類操作。僅從顯示它的控制器中隱藏彈出窗口(並擁有它)。

你的問題實際上應該是:如何告訴父控制器用戶在popover中執行了一些操作?

答案是:代表。 定義一個委託,在你的父控制器中實現它,將它傳遞給你的popover和IBAction調用委託方法。

0

最好的方法是在popoverControllerDidDismissPopover:發佈彈出式代理回調。不幸的是,這個回調在dismissPopoverAnimated:之後沒有調用。我通過輸入另一個名爲例如popoverDidFinishWorking:的統一回調來解決此問題。當點擊關閉按鈕等時,將其從popover發送給所有者。當所有者獲得popoverDidFinishWorking:時,它僅調用popoverControllerDidDismissPopover:並隱藏/釋放彈出窗口(settingsPopover)。您還可以在此回調中顯示任何其他視圖。無論如何,這取決於你的應用程序設計。

+0

你應該小心iOS中的未定義的東西。應用程序在此基礎上被拒絕。 – mpemburn 2012-10-03 20:02:26

+0

所以,我是一個幸運的人。該應用程序已成功放置App5tore一年多。其實這不是「未定義的東西」,而是應用程序設計的一部分。 – SVGreg 2012-10-03 20:32:08

0

在那裏你啓動settingsPopover功能你的「父」的對象,你應該有:

- (void) launchDismissSettingPopover { 
    if (settingPopover == nil) { 
     //Create an launch the popover 
    } else { 

     [self dismissPopoverAnimated:YES]; 
     // settingPopover will be nil in navigationController didShowViewController 
     //self.settingsPopover = nil; 
    } 
} 

你應該有self.navigationController.delegate =自之前在父類

-(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated { 
    if (viewController == self && self.settingPopover != nil) { 

     //need to show more Info based on settingPopover info here 

      self.settingPopover = nil ; 
     } 
} 

然後在你的popover類的方法

- (IBAction)showFullVersionInfo:(id)sender 
    { 
    [parent launchDismissSettingPopover]; 
    } 
相關問題