Да, это может быть невозможно, но, может быть, это так ...
У меня есть 3 UIViewControllers, каждый со своими собственными файлами XIB, которые содержат макет для каждого слайда презентации (каждый слайд будет содержать видео, изображения, другие интерактивные элементы). Я подключил их все к UIScrollView, добавив их один за другим, см. Ниже:
page1 *vc = [[page1 alloc] initWithNibName:@"page1" bundle:nil];
vc.view.frame = CGRectMake(0.0f, 0.0f, 1024.0f, 768.0f);
[sv addSubview:vc.view];
[vc release];
page2 *vc2 = [[page2 alloc] initWithNibName:@"page2" bundle:nil];
vc.view.frame = CGRectMake(1024.0f, 0.0f, 1024.0f, 768.0f);
[sv addSubview:vc2.view];
[vc2 release];
page3 *vc3 = [[page3 alloc] initWithNibName:@"page3" bundle:nil];
vc.view.frame = CGRectMake(2 * 1024.0f, 0.0f, 1024.0f, 768.0f);
[sv addSubview:vc3.view];
[vc3 release];
То, что я хочу сделать, - это создать массив UIViewController и зацикливать массив, чтобы добавлять их, а не один за другим. Во-первых, я не могу создать массив UIViewControllers, мой код выглядит следующим образом:
NSArray *pages = [[NSArray alloc] initWithObjects:page1, page2, page3, nil];
и ошибка: ожидаемое выражение перед 'page1'.
Мне удалось загрузить UIViewControllers с помощью следующего кода:
for (int i = 1; i <= 3; i++) {
UIViewController *vc = [[UIViewController alloc] initWithNibName:[NSString stringWithFormat:@"page%i", i] bundle:nil];
vc.view.frame = CGRectMake((i-1) * 1024.0f, 0.0f, 1024.0f, 768.0f);
[sv addSubview:vc.view];
[vc release];
}
Но несмотря на то, что отображалось содержимое из XIB, функция viewDidLoad загруженных в UIViewControllers никогда не запускается.
Итак, есть ли у кого-нибудь советы по загрузке массива UIViewControllers в UIScrollView?
Спасибо!