какао iphone загрузить модальный вид, не видя его - PullRequest
0 голосов
/ 08 января 2010

Есть ли способ загрузить вид модально, не видя его? Мне нужно получить доступ к методам на контроллере модального представления, который в свою очередь устанавливает свойства компонентов пользовательского интерфейса в XIB. Я хочу установить эти свойства, но не хочу видеть вид сразу. Я хочу показать это, когда пользователь поворачивает телефон.

Все работает, кроме решения, включающего представление модального представления сразу после загрузки приложения.

Спасибо, Howie

Ответы [ 2 ]

1 голос
/ 09 января 2010

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

MainController         UIViewController
->UIview               UIView

ModalController        UIViewController
->ModalControllerView  UIView

в MainController.h, создайте выход для контроллера представления:

@property(nonatomic, retain) IBOutlet ModalController *ModalController

(и, конечно, вам нужен ивар, а также включить)

В Интерфейсном Разработчике подключите ModController ModalController к представлению ModalController, используя параметр перетаскивания или по вашему желанию.

При загрузке пера вам будет присвоено modalController установленный ModalController, а затем методы в MainController смогут получить доступ к modalController и делать с ним все, что захотят. Тогда вам просто нужно использовать presentModalView, чтобы представить его.

Я думаю, что более типичный способ сделать это так:

- (IBAction)showInfo {    

    FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
    controller.delegate = self;

    controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:controller animated:YES];

    [controller release];
}

(Это прямо из шаблона проекта Utility Application в Xcode.)

Другими словами, создайте модальный контроллер и просмотрите его собственный файл пера, затем загрузите файл пера вручную при необходимости. Это более эффективно использует память, поскольку не создает экземпляр объекта до тех пор, пока он действительно не понадобится.

Нет также причины, по которой вы не можете просто сделать:

    modalController = [[ModalViewController alloc] initWithNibName:@"ModalView" bundle:nil];

в методе mainDontroller viewDidLoad или initWithCoder или что-то еще, затем приступайте к его настройке так, как вы хотите.

0 голосов
/ 08 января 2010

Если у вас есть другое представление, можете ли вы вставить это представление в существующее представление, используя

(void)insertSubview:(UIView *)view atIndex:(NSInteger)index

тогда, когда устройство вращается, переключить вид?

...