2012-07-01 3 views
0

У меня есть 4 ViewControllers, startViewController как начальный контроллер просмотра. Это содержит мое вступительное слово. После его завершения он будет [self presentViewController:vc animated:YES completion:NULL]; в мой menuViewController.ViewController Навигация


startViewController ------> menuViewController ------> C1ViewController 
              \ 
              \ ------> ImportantViewController 

В моей menuViewController кнопки для двух ViewController, как на рисунке выше. Кроме того, я представил их в представлении с этим: [self presentViewController:vc animated:YES completion:NULL]; я вернусь к menuViewController с этим [self dismissModalViewControllerAnimated:YES];

То, что я хотел, чтобы сделать ImportantViewController быть как родительское представление или MainView, даже если я иду к другому Views. Что мне нужно, когда ImportantViewController представлен, когда я перехожу либо в C1ViewController, либо в menuViewController, он не будет освобожден, или его содержимое будет сохранено.

Возможно ли это? И как?

Я не знаю много о том, какие контроллеры родительского и дочернего элементов, поэтому я не знаю, что реализовать в моей проблеме. Спасибо.

BTW, я использую раскадровки.

+0

Почему бы не использовать 'UINavigationController' для этого? –

+0

Я не очень хорошо разбираюсь в 'UINavigationController' с точки зрения его использования. И мои кнопки не на панели инструментов, я знаю, что 'UINavigationController' для просмотров с панелями инструментов, я думаю. – Bazinga

ответ

0

сделать ImportantViewController вид корень UINavigationController, вы будете представлять UINavigationController вместо ImportantViewController,

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:YourImportantViewControllerOBject]; 

//insted of presentModalViewControlle with YourImportantViewControllerOBject you do 
[self presentModalViewController:navigationController animated:YES]; 

Сейчас в ImportantViewController представит новый контроллер представления вы будете делать следующее

[self.navigationController pushViewController:yourC1ViewController animated:YES]; 
+0

Где я должен начать внедрение контроллера навигации, потому что я использую раскадровку. и Im kinda новый для навигационного контроллера, который в моих основных знаниях о нем заключается в том, что он должен быть представлен с помощью панели инструментов. – Bazinga

+0

Вы можете сделать навигационную панель в раскадровке http://maybelost.com/2011/10/tutorial-storyboard-in-xcode-4-2-with-navigation-controller-and-tabbar-controller-part1/ –

+0

Может ли моя проблема должна быть выполнена не контроллером навигации? или это только правильный способ сделать это? – Bazinga

0

Я не на 100% на то, что вы хотите сделать, но если вы используете ARC, установив ImportantViewController на __strong, он будет сохранен для вас. Почему вы не делаете ImportantViewController родителем, создавая необходимые контроллеры представлений программным способом в ImprotantViewController.m?

// ImportantViewController.m 
// non ARC 
FirstChildViewController *firstChild = [[FirstChildViewController alloc] [email protected]"FirstChildViewController" bundle:nil]; 

//set firstChild.view position here if needed. e.g. .center = CGPointMake(x,y); 

//now add firstChild to the parent 
[self addSubview:firstChild]; 
[firstChild release]; 

Вы можете сделать то же самое со вторым видом или любым количеством видов. Я нахожу это более приятным, чем представление контроллера вида. Вы также можете добавить Core Animations в представления детей и создать приятный интерфейс.

Это ответ на ваш вопрос? Возможно, я не получил именно то, что вы хотели. :)

+0

Я не могу перейти к ImportantViewContoller, если не нажать кнопку в MenuViewController, поэтому как и где его реализовать, а также использовать раскадровку. – Bazinga

+0

Вы хотите перейти к ImportantViewController? Вы можете подключить представления в раскадровке, а затем использовать кнопку в качестве триггера. Я думаю, что это сообщение делает именно то, что вам нужно. (перейдите к шагу 5, если у вас уже есть ваши другие представления в основной стритбард) http://kurrytran.blogspot.se/2011/07/simple-ios-5-tutorial-using-storyboard.html – jarryd

+0

Нет, нет, Я представляю View один за другим до MainViewController, а затем, когда ImportantViewController отображается, когда я перехожу к другим представлениям, я хочу, чтобы ImportantViewController все еще сохранялся, и его содержимое не освобождалось. – Bazinga

Смежные вопросы