2013-02-15 73 views
3

我試圖創建一個視圖,其中包含具有不同視圖控制器的三個子視圖(UICollectionViewControllerpageviewcontrolleruiviewcontroller)。 我能夠添加一個uiviewcontroller但其他兩個控制器是不允許的。 我收到此錯誤.....將CollectionViewController作爲ChildViewController添加到UIView

不兼容的指針類型發送「UICollectionView * __弱」到類型「的UIViewController *」

的參數是他們的任何方式將這些控制器添加到我的子視圖?

回答

2

我不知道你爲什麼要在視圖中添加ViewControllers,我從不需要它。 我想這樣做,如果能夠幫助你,這是我跑步代碼:

ViewController.h

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController 

@property (nonatomic, retain) UICollectionViewController *collectionViewController; 
@property (nonatomic, retain) UIPageViewController  *pageViewController; 
@property (nonatomic, retain) UIViewController   *simpleViewController; 

@end 

ViewController.m

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

@synthesize collectionViewController; 
@synthesize pageViewController; 
@synthesize simpleViewController; 


- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UICollectionViewLayout *layout = [[UICollectionViewLayout alloc] init]; 
    collectionViewController = [[UICollectionViewController alloc] initWithCollectionViewLayout:layout]; 
    pageViewController  = [[UIPageViewController alloc] init]; 
    simpleViewController  = [[UIViewController alloc] init]; 

    // Do your stuff with this controllers 

    [self.view addSubview:collectionViewController.view]; 
    [self.view addSubview:pageViewController.view]; 
    [self.view addSubview:simpleViewController.view]; 

} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 
+0

感謝您的時間。其實我也在做同樣的事情,但錯誤在於正在嘗試添加視圖控制器而不是其視圖。愚蠢的錯誤.......再次感謝 – bhawesh 2013-02-16 12:05:57

0

您不添加視圖控制器的看法。您將視圖添加到視圖(作爲子視圖),更少的情況下,將視圖添加到控制器(作爲子控制器)。

認爲它們是兩個平行的層次結構:鑑於ControllerA控制視圖ViewA,你想ControllerBControllerA子控制器,使得它的觀點,ViewBViewA子視圖。

WWDC 2011 video: 「實施的UIViewController遏制」

相關問題