3

UICollectionViewControllerビューコントローラ( 、、 )が異なる3つのサブビューを含むビューを作成しようとしていpageviewcontrollerますuiviewcontroller。追加することはできますuiviewcontrollerが、他の2つのコントローラーは許可されていません。このエラーが発生します.....

'UICollectionView*__weak'をタイプ'UIViewController*'のパラメーターに送信する互換性のないポインタータイプ

これらのコントローラーを私のサブビューに追加する方法はありますか?

4

2 に答える 2

2

ビュー内にViewControllerを追加する理由がわかりません。必要ありません。私はそれをやろうとしました、あなたを助けることができるならこれは私の実行中のコードです:

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
于 2013-02-15T14:46:01.503 に答える
0

ビューにビューコントローラを追加しません。ビューを(サブビューとして)ビューに追加し、ごくまれに、コントローラーをコントローラーに(子コントローラーとして)追加します。

それらを2つの並列階層と考えてください。ControllerAコントロールビューが与えられたViewA場合、ビューControllerBの子コントローラーをControllerAViewBサブビューにする必要がありViewAます。

WWDC2011のビデオ「UIViewControllerContainmentの実装」を参照してください。

于 2013-02-15T14:57:41.357 に答える