ios - addChildViewController 和 presentModelViewController 有什么区别

标签 ios view pushviewcontroller presentmodalviewcontroller addchild

我知道在 iOS 中可以通过三种方式更改 View

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 需要导航 Controller ,我明白这一点。但是,什么时候使用 addChildViewController 和 presentModalViewController??

最佳答案

这是四种完全不同的实现方式

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

  • addSubview 是三者中的最低层,这只会将一个 View 添加到另一个 View ,作为 subview

  • presentModalViewController 用于在屏幕上模态显示 viewController,从而覆盖旧的

  • pushViewControllerUINavigationController 中用于将新的 ViewController 推送到 viewcontrollers 堆栈,

关于ios - addChildViewController 和 presentModelViewController 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11186758/

相关文章:

html - 如何在 Swift 3 的字符串中表示 HTML 中的换行符

arrays - couchdb 搜索或过滤键数组

laravel - 将数据从 Controller 传递到 Laravel 中的 View

ios - 从使用 MessageKit 创建的 ChatViewController 推送其他 ViewController

objective-c - pushViewController:detail 不推送 detailView

ios - 关闭两个 View Controller 然后推送一个 View Controller - Swift

ios - Xcode 5 Storyboard - presentViewController 不呈现我现有的 Viewcontroller 并显示黑屏

ios - TabBarController 的界面方向

ios - 如何在 iOS 上让 Meteor Cordova *不*全屏?

mysql - 尝试加入多个表