【问题标题】:Push a viewController from a row in a UITableView within a UIPopoverController从 UIPopoverController 内的 UITableView 中的一行推送 viewController
【发布时间】: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 不会推送

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

【问题讨论】:

  • 嗯……通常你不应该调用委托方法;应该由弹出框本身处理。

标签: objective-c ipad uitableview uipopovercontroller


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多