Потому что вы упомянули «Я создал 5 файлов nib, каждый с разными окнами и файлы классов для каждого nib». Я предполагаю, что у вас есть 5 разных окон (а не просмотры) и хотите их открыть при нажатии кнопки.
Каждый файл окна с окном управляется NSWindowController
, который будет C в MVC. Чтобы на самом деле загрузить файл nib (программно), вы назначили ему NSWindowController
; NSWindowController
в OS X сопоставим с UIViewController
на iPhone.
NSWindowController *controller = [[NSWindowController alloc] initWithWindowNibName:@"nib1"]
Затем вы можете открыть/закрыть окно, которым управляет NSWindowController.
[controller showWindow:nil]
показать окно
[controller.window makeKeyAndOrderFront:self]
сделать окно ключ окно.
Возможно, вы намерены сделать что-то еще, что должно поддерживать одно и то же окно, но переключать представление содержимого этого окна. В этом случае вам нужны файлы nib, содержащие представления (и использовать NSViewControllers для их загрузки), а не окна (потому что наличие окон будет избыточным).
Но даже если вы вставляете с окнами, чтобы заменить contentView:
[currentWindow setContentView:[newWindowController.window contentView]];
Вы должны прочитать ВСЕ документацию, которую Apple может предложить в Windows, представлениях и приложениях.
Когда вы говорите «открыть новый вид», вы имеете в виду «открыть новое окно»? – Vervious
как бы закрыть текущий наконечник и открыть другой, а затем переключиться назад и вперед – Cristian
Вы имеете в виду ... закрыть текущее окно и открыть новое окно или просто переключить виды содержимого внутри? Нитки могут представлять собой окна или виды, поэтому я не уверен, что вы имеете в виду. – Vervious