iPhone Obj C - 2nd XIB Как настроить Nav Controller и View Controller - PullRequest
0 голосов
/ 11 мая 2011

Все еще медленно изучаю Obj-C ... прости глупые вопросы ...

На моем первом XIB у меня есть App Delegate, Nav Controller и несколько контроллеров представления.Наряду с этим у меня есть несколько кнопок, которые вызывают 2-ю или 3-ю или последующую XIB.

Все последующие XIBS имеют кнопки, которые отображают представления.

Итак, на втором + XIB я настроил его в .h как UIViewController, однако я предполагаю, что мне нужно сделать его чем-то вроде первичного .h - AppDelgate.

Итак, сейчас XIB хочет установить представление, но я не хочу, чтобы оно переходило в представление, я хочу, чтобы оно переходило в контроллер представления ... Я думаю ??

Может быть, я все еще иду об этом все неправильно.Мне нужно главное меню для вызова следующего меню (2-й XIB), которое в свою очередь вызывает различные виды.В моем Java-приложении для Android у меня есть около 70 классов и около 45 представлений, так что я снова предполагаю, что мне действительно нужно несколько XIBS.

Итак, вопрос в том, как настроить дополнительные XIB?Они AppDelegates или как?

Это меняет способ, которым я называю 2-й XIB?

1 Ответ

1 голос
/ 11 мая 2011

XIB или UIViews (или его подклассы) - это только косметика лица.

Для фактически программируемой части вы имеете дело непосредственно с классами "контроллеров" для этих представлений.

Просмотр контроллеров, которые вы делаете, может иметь прикрепленный к ним XIB.Но поведение того, как и когда представление отображается или скрывается, все обрабатывается самим контроллером представления.

Итак, чтобы перейти к точке, если вы хотите иметь панель навигации в верхней части приложения(при условии, что это простое приложение, которое хочет показывать много представлений с помощью панели навигации):

Создайте экземпляр UINavigationController в вашем applicationDidFinishLaunching: метод в делегате приложения:

// Assuming that mainViewController is the first controller + view for your app.
navigationController = [[UINavigationController alloc] initWithRootViewController:mainViewController];
[window addSubview:navigationController.view];

Это будет автоматическидобавить панель навигации для ваших просмотров.Вам не нужно добавлять их вручную в XIB или где-либо еще.Теперь то, как вы рисуете / реализуете mainViewController, зависит от вас.


Если вы хотите показать другое представление из mainViewController, вы должны вызвать:

AnotherViewController *anotherViewController = [[[AnotherViewController alloc] init] autorelease];
[self.navigationController pushViewController:anotherViewController animated:YES];

Это будет "толкать"«Ваше новое представление (из другого экземпляра ViewViewController) в структуру навигации, которая автоматически добавит кнопку« Назад »вверху.


Надеюсь, это поможет немного очистить сцену от того, как это работает.

Если у вас есть сомнения, прокомментируйте это.Хорошего дня!

...