addChildViewController和presentModelViewController有什么区别

Ian*_*Ian 10 view addchild pushviewcontroller presentmodalviewcontroller ios

我知道有三种方法可以在iOS中更改视图

1.

[self addChildViewController:thirdViewController]; 
[contentView addSubview:thirdViewController.view]; 
Run Code Online (Sandbox Code Playgroud)

2.

First * sVC = [[First alloc] initWithNibName:@"First" bundle:[NSBundle mainBundle]]; 
[self presentModalViewController:sVC animated:YES];
Run Code Online (Sandbox Code Playgroud)

3.

MyViewController *sampleViewController = [[[MyViewController alloc]initWithXXX] autorelease];       
[self.navigationController pushViewController: sampleViewController animated:true];
Run Code Online (Sandbox Code Playgroud)

pushViewController需要导航控制器,我理解.但是,何时使用addChildViewController和presentModalViewController?

Oma*_*ith 10

这是四种完全不同的实现

  • addChildViewController在iOS5中用于执行viewController包含,这将使您能够轻松创建自己的NavigationCotrollersTabControllers仅在iOS5中可用的

  • addSubview 是这三个中的最低级别,这只会添加一个视图到另一个视图,作为一个孩子

  • presentModalViewController 用于在屏幕上以模态方式呈现viewController,从而覆盖旧的

  • pushViewController用于UINavigationController将新的ViewController推送到viewcontrollers堆栈,