从 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