В контроллере вида вы можете создать розетку для другого контроллера. Все, что вам нужно сделать, это что-то вроде этого в том же файле бобах в интерфейсе строителя:
MainController UIViewController
->UIview UIView
ModalController UIViewController
->ModalControllerView UIView
в MainController.h, создать выход для контроллера представления:
@property(nonatomic, retain) IBOutlet ModalController *ModalController
(и, конечно, нужен ivar и также включите)
В Interface Builder подключите mainController 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];
}
(Это непосредственно из шаблона проекта Полезность приложений в Xcode.)
Другими словами, создать модальное контроллер и просмотр в собственном файле nib, затем загрузите файл nib вручную по мере необходимости. Это более эффективно с точки зрения памяти, поскольку оно не создает экземпляр объекта, пока он не понадобится.
Там также нет причин, почему вы не можете просто сделать:
modalController = [[ModalViewController alloc] initWithNibName:@"ModalView" bundle:nil];
в методе или что-то MainController в viewDidLoad или initWithCoder, а затем приступить к настройке его же вы хотите.
Прохладный спасибо! Я ценю это. – Ward