2

ユーザーがボタンをタップすると、コレクション ビュー セルからポップオーバーが読み込まれます。ポップオーバーを機能させることができましたが、ストーリーボードに設定したビュー コントローラーをロードする方法がわかりません。

ポップオーバーを表示するコードは次のとおりです。ストーリーボードからView Controllerをロードするにはどうすればよいですか?

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 と呼ばれ、identity-inspector で viewController のクラス名を設定した場所のすぐ下にあります。

于 2013-07-08T08:51:54.673 に答える