0

这是Dismissing a UIpopover关于如何关闭弹出框的后续问题。

我有类似的情况,但它是在 Master Detail iPad 应用程序的上下文中的 UIPopover。我基本上创建了两个导航控制器(这是来自 CS193P 的建议),一个用于 Master,一个用于 Detail。

在我的 AppDelegate 中,我有以下设置我的 UISplitViewController

#pragma 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Creating the EpisodesViewController (used on both iPhone and iPad)
EpisodesViewController *navControllerRootController = [[EpisodesViewController alloc] init];
UINavigationController *masterNav = [[UINavigationController alloc]initWithRootViewController:navControllerRootController];
[navControllerRootController release];
masterNav.title=@"Episodes";

if ([self iPad]) {
    EpisodeDetailViewController *detailViewController = [[EpisodeDetailViewController alloc]init];
    UINavigationController *detailNav = [[UINavigationController alloc]initWithRootViewController:detailViewController];
    detailNav.navigationBar.tintColor = [UIColor blackColor];

    self.splitviewController = [[UISplitViewController alloc] init];
    self.splitviewController.delegate=detailViewController;
    self.splitviewController.viewControllers = [NSArray arrayWithObjects:masterNav,detailNav,nil];
    [window setRootViewController:self.splitviewController];

    [detailViewController release];
    [detailNav release];
}else {
    [window setRootViewController:masterNav];
} 
[masterNav release];
[self.window makeKeyAndVisible];
return YES;
}

所以。问题是......当我点击“剧集”按钮时,我如何获得对出现的 UIPopover 的引用。我想做的是从另一个线程实现解决方案,但我没有对我的弹出框的引用(我知道),所以我可以关闭它。

[编辑] 使我创建 detailNav 的方式与创建 masterNav 的方式相同,以避免混淆主要问题。

4

1 回答 1

0

好的,我明白了。

我使用了此处描述的通知方法的组合Dismissing a UIpopover .. 我从

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

在我的主视图中,我有一个指向 UIPopover 的实例变量,如此处所述

UISplitViewController 纵向:如何以编程方式隐藏主弹出窗口?我用它来实际关闭弹出窗口。

奇迹般有效。

:-)

于 2011-05-19T17:20:51.047 回答