Objective-c Как правильно управлять несколькими представлениями и контроллерами - PullRequest
0 голосов
/ 15 мая 2011

У меня есть приложение, в котором изначально есть TabBarController, каждая вкладка является ViewController, и у каждой есть кнопка, которая вызывает другие контроллеры.

Так, как я могу структурировать это?Наличие одного основного rootviewController (если да, то как?)?Или вызывая в приложении делегирование только tabBarController и в каждом viewControllers внутри вкладки вызывать другие контроллеры?

Как лучше всего продвигаться, быстро возвращаться и переходить в представления?не знаю, ясно ли я прояснил ...

Спасибо, ребята.

1 Ответ

0 голосов
/ 15 мая 2011

Как правило, вы начнете с шаблона, называемого «Приложение панели вкладок», а начиная с Xcode 4 начинается с загрузки пера MainWindow, в котором содержится панель вкладок, а в IB настроена панель вкладок, чтобы иметь 2 контроллера представления, называемых «FirstViewController "и" SecondViewController "...

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

Редактировать:

В основномодин из двух способов, если вы планируете загрузить стек контроллера навигации или один модальный вид.

1)

ThirdViewController * controller = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil];
UINavigationController * myNavigationController = [[UINavigationController alloc] initWithRootViewController:controller];

[self presentModalViewController:myNavigationController animated:YES];
[controller release];
[myNavigationController release];

2)

ThirdViewController * controller = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil];
[self presentModalViewController:controller animated:YES];
[controller release];

либоВернитесь в среду Tab, вызвав следующее на контроллере представления, который вызывает текущий модал.

[self dismissModalViewControllerAnimated: YES];

...