Установите свойство "class" в Интерфейсном Разработчике (третья вкладка в инспекторе, " Пользовательский класс ") на имя пользовательского класса, который вы планируете использовать, а затем введите имя XIB-файл, из которого вы хотите загрузить данные в «NIB Name» (четвертая вкладка).
Код, который вы используете для нажатия на viewController, в порядке. Удостоверьтесь, что никогда случайно не освободите ни один из двух UIViewController.
Говоря об этом, имейте в виду, что этот подход сохраняет ViewControllers всегда в памяти, даже когда он не используется. Другой подход состоит в том, чтобы полностью удалить IBOutlets для двух ViewControllers и сделать что-то вроде:
- (IBAction)next
{
MyCustomViewController *customViewController = [[MyCustomViewController alloc] initWithNibName:<#NibName or nil#> bundle:[NSBundle mainBundle]];
[navigationController pushViewController:customViewController animated:YES];
[customViewController release];
}
Это создает объект, когда это необходимо (если я правильно помню, элементы пользовательского интерфейса из xib где-то кэшируются, так что это может быть неактуально [цитата нужна]). Просто кое-что, что нужно иметь в виду, в зависимости от частоты использования ваших двух контроллеров ViewController.