2

当用户点击按钮时,我正在从集合视图单元格加载弹出框。我已经设法让弹出框工作,但我不知道如何加载我在情节提要中设置的视图控制器。

这是让我弹出窗口的代码。如何让它从情节提要中加载视图控制器?

self.popoverContent = [[PopOverViewController alloc]initWithNibName:@"UpcomingCells" bundle:nil];


UIView *popoverView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 200, 300)];


[popoverView setBackgroundColor:[UIColor colorWithRed:224/256.0 green:45/256.0 blue:117/256.0 alpha:1.0]];



self.popoverContent.view = popoverView;

self.popoverContent.contentSizeForViewInPopover = CGSizeMake(200, 300);

self.contactPopover =[[UIPopoverController alloc] initWithContentViewController:self.popoverContent];

[self.contactPopover presentPopoverFromRect:self.remindButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES ];

[self.contactPopover setDelegate:self];
4

1 回答 1

2

文档对此非常清楚,您应该使用

-instantiateViewControllerWithIdentifier:;

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIStoryboard_Class/Reference/Reference.html

因此,假设您需要将 viewController 加载到 self.popOverContent 中,您可以这样做

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"nameOfStoryboard" 
                                                     bundle:nil];
self.popoverContent = [storyBoard instantiateViewControllerWithIdentifier:@"nameOfViewController"];

只需用实际名称替换 nameOfViewController 和 nameOfStoryboard ;)

编辑:故事板名称只是您的故事板文件的名称,减去扩展名。因此,对于“myStoryboard.storyboard”,您只需使用“myStoryboard”。您还需要为您的 viewController 设置一个 stoyboard-Identifier。它被称为 stryboard-id,它位于您在身份检查器中为 viewController 设置类名的位置的正下方。

于 2013-07-08T08:51:54.673 回答