2011-03-28 138 views
2

我想在弹出窗口中显示视图的子视图。 详细说明,将子视图显示为弹出窗口时出现问题

我有一个mainViewController。 我在这个mainViewController中有一个子视图'songListView'。 我在mainViewController本身有一个名为'list'的按钮。 我想在点击按钮'list'的弹出窗口中显示songListView。

那么,我该怎么做。

+0

你是什么意思的问题显示? 这里是类参考http://developer.apple.com/library/ios/#documentation/uikit/reference/UIPopoverController_class/Reference/Reference.html ,你可以看到那里的示例代码.. – kthorat 2011-03-28 13:46:32

回答

2

我的问题就解决了。 我刚刚创建了另一个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

很好的解决方案@iPhoneDev :) – Abhi 2014-08-04 06:42:17

0

你可以在你的主视图上使用presentModalViewController。

例如

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

有不同的动画可能的。

+0

注意:'SongListView '需要成为'UIViewController',而不是'UIView'。 – raidfive 2011-03-29 03:56:00

+0

我必须仅将视图显示为弹出窗口,而不是模态视图。 – iPhoneDev 2011-03-29 04:32:35

7

你可以使用下面的代码作为参考用于显示酥料饼从一个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]; 
} 
+0

我知道这个..但我的问题是不同的 – iPhoneDev 2011-03-29 04:31:51

0

,你认为在自我添加子视图一样简单。查看

[popoverController.contentViewController.view addSubview:yourselfobject];