2013-07-12 82 views
0

因此,我一直在研究互聯網,我無法解決這個問題,因爲我所見到的所有答案都與視圖層數少於我的視圖層次有關,如果這樣做感。選擇關閉UIPopover

無論如何,我有一個主視圖,它打開一個彈出窗口,其中包含一個UINavigationController,它包含一個UITableViewController。這一切都是在故事板中設置的,從遊標按鈕切換到彈出式導航視圖控制器。

我想在我選擇UITableViewController上的東西時關閉彈出窗口,但所有我見過的解決方案只在沒有UINavigationController時才起作用。

任何想法?我都是耳朵。

回答

0

好吧,我想我找到了答案。

如果有人看到任何問題,我會很感激,如果你讓我知道,但是這是爲我工作至今:

在我的主視圖控制器(在打開的酥料餅的一個):

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    UIStoryboardPopoverSegue *popoverSegue = (UIStoryboardPopoverSegue*) segue; 
    currentPopover = [popoverSegue popoverController]; 
    currentPopover.delegate = self; 

    UINavigationController *destinationNavController = (UINavigationController*)segue.destinationViewController; 

    SelectServerToConnectViewController *destinationView = [destinationNavController.childViewControllers objectAtIndex:0]; 
    destinationView.parentPopover = currentPopover; 
} 

在我SelectServerToConnectViewController:

-(void)tableView:(UITableView *)tableView didHighlightRowAtIndexPath:(NSIndexPath *)indexPath { 
    ServerItem *selectedServer = [CoreDataController getServerForIndex:indexPath.row]; 
    [parentPopover dismissPopoverAnimated:true]; 
} 
1

你應該只具有指向您UIPopoverController UIViewController中的一個屬性。當你創建你的UIViewController時,只需將其鏈接起來即可。