В чем разница между addChildViewController и presentModelViewController

Я знаю, что есть три способа изменить представление в iOS

1.

[self addChildViewController:thirdViewController]; 
[contentView addSubview:thirdViewController.view]; 

2.

First * sVC = [[First alloc] initWithNibName:@"First" bundle:[NSBundle mainBundle]]; 
[self presentModalViewController:sVC animated:YES];

3.

MyViewController *sampleViewController = [[[MyViewController alloc]initWithXXX] autorelease];       
[self.navigationController pushViewController: sampleViewController animated:true];

pushViewController требует навигационный контроллер, который я понимаю. Однако, когда использовать addChildViewController и presentModalViewController ??

Ответы на вопрос(2)

1) был представлен в iOS 5 как часть смены парадигмы Apple, чтобы позволить иерархии контроллера представления, он просто помещает контроллер представления перед текущим..

2) То же, что и один, за исключением того, что это может быть сделано только для одного контроллера представления одновременно. На самом деле, этот метод был заменен[self presentViewController:animated:completion:]

3) Добавляет контроллер представления в список, чтобы вы могли вернуться к предыдущему после нажатия кнопки «назад». iOS будет управлять потоком контроллеров для вас.

 Ian25 июн. 2012 г., 11:57
Большое спасибо! Очистить!
Решение Вопроса

addChildViewController is used in iOS5 to do viewController containment, this will enable you to easily create your own NavigationCotrollers or TabControllers its only available in iOS5

addSubview is the lowest level of the three, this will just add a view to another view, as a child

presentModalViewController is used to present a viewController modally on the screen, hence overwriting the old one

pushViewController used in UINavigationController to push a new ViewController to the viewcontrollers stack,

 Ian25 июн. 2012 г., 11:57
Очень ясно! Спасибо!

Ваш ответ на вопрос