2011-03-28 142 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];