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?
这是四个完全不同的实现
-
在iOS5中使用
addChildViewController
来执行viewController的包容,这将使您可以轻松创build自己的NavigationCotrollers
或TabControllers
它的唯一可用的iOS5 -
addSubview
是三个中的最低级别,这只是将一个视图添加到另一个视图,作为一个孩子 -
presentModalViewController
用于在屏幕上以模态方式呈现viewController,因此覆盖旧的 -
在
UINavigationController
使用pushViewController
将新的ViewController推送到viewcontrollers堆栈,
1)在iOS 5中引入,作为苹果的范例转换的一部分,允许视图控制器层次结构,它只是把一个视图控制器放在当前的视图控制器之前。 你必须pipe理控制器的stream量。
2)与一个视图控制器相同,但一次只能为一个视图控制器执行。 实际上,这个方法已经被[self presentViewController:animated:completion:]
所取代
3)将视图控制器添加到列表中,以便在点击“返回”后返回到前一个。 iOS将为您pipe理控制器的stream程。