Проблема в отображении подпредставления как поповера - PullRequest
2 голосов
/ 28 марта 2011

Я хочу показать подпредставление представления в popover. Для уточнения,

У меня есть mainViewController. У меня есть subview 'songListView' в этом mainViewController. У меня есть кнопка с названием «список» в самом mainViewController ». Я хочу показать songListView в поповере при нажатии на кнопку «список».

Итак, как мне это сделать.

Ответы [ 4 ]

7 голосов
/ 28 марта 2011

Вы можете использовать приведенный ниже код в качестве справки для отображения PopOver из UIButton

-(void) buttonAction:(id)sender {
   //build our custom popover view
   UIViewController* popoverContent = [[UIViewController alloc]
                  init];
   UIView* popoverView = [[UIView alloc]
                  initWithFrame:CGRectMake(0, 0, 200, 300)];
   popoverView.backgroundColor = [UIColor greenColor];
   popoverContent.view = popoverView;

   //resize the popover view shown
   //in the current view to the view's size
   popoverContent.contentSizeForViewInPopover =
                  CGSizeMake(200, 300);

   //create a popover controller
   self.popoverController = [[UIPopoverController alloc]
               initWithContentViewController:popoverContent];

   //present the popover view non-modal with a
   //refrence to the button pressed within the current view
   [self.popoverController presentPopoverFromRect:popoverButton.frame
               inView:self.view
               permittedArrowDirections:UIPopoverArrowDirectionAny
               animated:YES];

   //release the popover content
   [popoverView release];
   [popoverContent release];
}
2 голосов
/ 29 марта 2011

Моя проблема решена. Я только что создал другой класс View Controller, то есть «TempPopoverView».

Затем я устанавливаю представление этого TempPopoverView равным подпредставлению моего MainView

Вот фрагмент кода из моего кода:

TempPopoverView *viewController = [[TempPopoverView alloc]initWithNibName:@"TempPopoverView" bundle:nil];

[self. songListView setHidden:NO];//songListView is subview of MainView
 viewController.view=self. songListView;
 UINavigationController *navCont = [[UINavigationController alloc]initWithRootViewController:viewController];
 navCont.navigationBar.tintColor = [UIColor colorWithRed:.102 green:.102 blue:.102 alpha:1];

[self showPopOverController:navCont andFrame:sender.frame andInView:self.view];//self.view is the MainView
[viewController release];
 [navCont release];
0 голосов
/ 25 июля 2013

так просто, как вы думаете, чтобы добавить подпредставление в self.view

[popoverController.contentViewController.view addSubview:yourselfobject];
0 голосов
/ 28 марта 2011

U можете использовать presentModalViewController на вашем главном экране.

Например

SongListView *songList = [[SongListView alloc] init];
[self presentModalViewController: songList animated: YES];

Также возможны различные анимации.

...