Iphone 将子视图显示为popover时出现问题

Iphone 将子视图显示为popover时出现问题,iphone,objective-c,ipad,uipopovercontroller,Iphone,Objective C,Ipad,Uipopovercontroller,我想在popover中显示视图的子视图。 详细说明, 我有一个主视图控制器。 我在这个主视图控制器中有一个子视图“songListView”。 我在mainViewController中有一个名为“列表”的按钮。 我想在点击“列表”按钮时在弹出窗口中显示歌曲列表视图 那么,我应该如何做到这一点。您可以在主视图上使用presentModalViewController 比如说 SongListView *songList = [[SongListView alloc] init]; [self p

我想在popover中显示视图的子视图。 详细说明,

我有一个主视图控制器。 我在这个主视图控制器中有一个子视图“songListView”。 我在mainViewController中有一个名为“列表”的按钮。 我想在点击“列表”按钮时在弹出窗口中显示歌曲列表视图


那么,我应该如何做到这一点。

您可以在主视图上使用presentModalViewController

比如说

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

也可能有不同的动画。

您可以使用下面的代码作为从UIButton显示PopOver的参考

-(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];
}
我的问题解决了。 我刚刚创建了另一个视图控制器类,即“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];

在self.view中添加子视图非常简单

[popoverController.contentViewController.view addSubview:yourselfobject];

你说的问题是什么意思?这是类引用,您可以在其中看到示例代码..注意:
SongListView
需要是
UIViewController
,而不是
UIView
。我知道这一点..但我的问题是不同的解决方案@iPhoneDev:)