Помощь Создание нескольких представлений с помощью контроллеров представлений - PullRequest
0 голосов
/ 25 июня 2010

Хорошо, вот что я пытаюсь сделать. В моем контроллере корневого представления у меня есть основной вид, а затем внутри этого представления у меня есть три дополнительных вида. (обратите внимание, это для ipad).

Вот что я хочу сделать. Когда корневое представление загружается, я хочу, чтобы оно загрузило и другие три представления, и у всех есть свой собственный контроллер представления.

Вот то, что я пытался далеко.

В моем корневом контроллере XIB я установил три контроллера вида и удалил их. Затем я подключил к каждому слоту представления контроллера те представления, которые я выложил в своем представлении корневого контроллера. Я также подключил ссылки контроллера вида к тем, которые я установил в rootcontroller.h

В моем rootcontroller.m под viewdidload я попытался установить, например.

theViewController = [[ViewController alloc] initWithNibName: @ Пакет AView: [NSBundle mainBundle]];

но безрезультатно, что не сработало

1 Ответ

0 голосов
/ 29 июня 2010

ViewControllers, где предназначено для использования всего экрана, поэтому этот случай не должен происходить.Тем не менее, очень часто вам требуется несколько сложных взаимодействий пользователей внутри ваших представлений (особенно в iPad), чтобы рассмотреть возможность использования контроллера представления с некоторыми дочерними контроллерами представления, которые инкапсулируют эту логику, как вы объяснили выше.

Что я вам предлагаюэто реализовать его по коду.Вы можете использовать что-то вроде:

- (void) viewDidLoad {

// Создать контроллеры представления viewController1_ = [[ViewController alloc] initWithNibName: @ "View1" andBundle: nil];viewController2_ = [[ViewController alloc] initWithNibName: @ "View1" andBundle: nil];viewController3_ = [[ViewController alloc] initWithNibName: @ "View1" andBundle: nil];

// Добавить представления в основной вид [self.view addSubview: viewController_1.view];[self.view addSubview: viewController_2.view];[self.view addSubview: viewController_3.view];

// TODO: Может быть, установить подходящие кадры?

}

Будьте осторожны с обходом события.Поскольку вы встраиваете свои вторичные контроллеры представления в основной, ни одно из стандартных событий не будет передано вашим дочерним контроллерам (например, viewWillAppear, shouldAutorotate, ... не будет получено вашими дочерними контроллерами).Не забудьте обойти их явно, если они вам нужны в ваших дочерних viewcontrollers.

Если ваши представления не были правильно созданы с использованием IB, убедитесь, что у вас нет проблем с этой проблемой обхода событий.

Надеюсь, чтопомогает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...