从 UIPopoverController 内的 UITableView 中的一行推送 viewController

Posted

技术标签:

【中文标题】从 UIPopoverController 内的 UITableView 中的一行推送 viewController【英文标题】:Push a viewController from a row in a UITableView within a UIPopoverController 【发布时间】:2011-04-11 00:01:16 【问题描述】:

所以我的 iPad 应用程序中有一个viewcontroller。它有一个UIPopoverViewController,里面有一个UITableView。我希望用户能够在 tableView 中选择一行,然后 rootViewController 将关闭弹出窗口并推送一个新的 viewController。提前致谢。

这是我迄今为止尝试过的:

在 UITableView 类中:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
WelcomeViewController *welcomeView = [[WelcomeViewController alloc] init];
welcomeView.whichDay = [daysOfTheWeek objectAtIndex:indexPath.row];
[welcomeView pushFromPopOver];

然后在rootViewController中:

-(void)pushFromPopOver
  //PlannerPage *plannerPageViewController = [[[PlannerPage alloc] initWithNibName:@"PlannerPageiPad" bundle:nil] retain];

    [popover dismissPopoverAnimated:YES];
    [popover.delegate popoverControllerDidDismissPopover:popover];
    NSLog(@"%@",whichDay);

    PlannerPage *plannerPageViewController = [[[PlannerPage alloc] initWithNibName:@"PlannerPageiPad" bundle:nil] retain];
    plannerPageViewController.dayOfTheWeekString = whichDay;
    [self.navigationController pushViewController:plannerPageViewController animated:YES];

    //plannerPageViewController.dayOfTheWeekString = @"";
    //[self.navigationController pushViewController:plannerPageViewController animated:YES];
    //[plannerPageViewController release];
  

NSLog 告诉我选择了什么,但弹出框不会关闭并且 rootViewController 不会推送

虽然我可能会使用委托,但我不确定如何使用。 提前致谢。

【问题讨论】:

嗯……通常你不应该调用委托方法;应该由弹出框本身处理。 【参考方案1】:

听起来像 NSNotificationCenter 它非常适合您的需要。你的根视图控制器应该监听一个 NSNotification 并且你的弹出框应该发布那个通知。

【讨论】:

以上是关于从 UIPopoverController 内的 UITableView 中的一行推送 viewController的主要内容,如果未能解决你的问题,请参考以下文章

UISplitViewController 内的 UIPopOverController

iOS:UIPopoverController 内的人物选择器,搜索键盘扭曲弹出框

从 uitableviewcell 内的文本字段中关闭 iPad 上的键盘

从 UICollectionViewCell 呈现一个 UIPopoverController

从 UIActionSheet 访问 UIPopoverController

从 UITableView 调用 UIPopoverController - objective-c