0

これらの4つのビューコントローラをアレイに追加するにはどうすればよいですか?

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]autorelease];    
ContainerViewController  *container= [[[ContainerViewController alloc]init]autorelease];
self.window.rootViewController = container;  
NSMutableArray *controllers = [NSMutableArray array];
for (int i=0; i<23; i++)
{
    First *first = [[First alloc] init];
    Second *second = [[Second alloc] init];
    Third *third = [[Third alloc] init];
    Fourth *fourth = [[Fourth alloc] init];

    [controllers addObject:first];
    [controllers addObject:second];
    [controllers addObject:third];
    [controllers addObject:fourth];
    }

 [container setSubViewControllers:controllers];
[window makeKeyAndVisible];
return YES;

インスタンスメソッドsetSubViewControllerが見つからないという黄色の警告が表示されます。戻り値のタイプはデフォルトでidになります。

手伝ってくれてありがとう。

4

2 に答える 2

2

ビューコントローラをアレイに追加するために、forループを作成する必要はありません。ループを削除し、以下を追加します。

First *first = [[First alloc] init];
    Second *second = [[Second alloc] init];
    Third *third = [[Third alloc] init];
    Fourth *fourth = [[Fourth alloc] init];

    [controllers addObject:first];
    [controllers addObject:second];
    [controllers addObject:third];
    [controllers addObject:fourth];

container:のビューコントローラsetSubViewControllersの場合、有効な方法ではありません。ただし、を使用して子ビューコントローラを追加できますaddChildViewController。配列をループして、[container addChildViewController:x#ViewController]を呼び出すことができます。何かのようなもの:

for (id thisViewController in controllers) {
thisViewController = (UIViewController *)thisViewController;
[container addChildViewController:thisViewController];
}

注:このコードはテストしていません。何か問題があれば教えてください。

于 2012-06-29T20:10:38.143 に答える
1

これを設定する

- (void)setSubViewControllers:(NSArray *)subViewControllers;

この.hでContainerViewController 警告を取り除くのに役立ちますが、論理的に何をしているのかわかりません。また、サブビューコントローラをループ内で解放してから、再度割り当てることをお勧めします...

于 2012-06-29T20:11:41.237 に答える