3

我正在尝试创建一个包含三个具有不同视图控制器(UICollectionViewControllerpageviewcontrolleruiviewcontroller的子视图的视图。我可以添加一个uiviewcontroller但其他两个控制器是不允许的。我收到这个错误......

不兼容的指针类型将“UICollectionView *__weak”发送到“UIViewController *”类型的参数

他们有什么方法可以将这些控制器添加到我的子视图中吗?

4

2 回答 2

2

我不知道你为什么要在视图中添加 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

视图控制器.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
于 2013-02-15T14:46:01.503 回答
0

您不会将视图控制器添加到视图中。您将视图添加到视图(作为子视图),并且很少将控制器添加到控制器(作为子控制器)。

将它们视为两个并行的层次结构:鉴于ControllerA控件 view ViewA,您希望创建ControllerB一个子控制器ControllerA,使其 viewViewBViewA.

请参阅WWDC 2011 视频:“实施 UIViewController 遏制”

于 2013-02-15T14:57:41.357 回答