繁体   English   中英

使用View Controller Containment的缺点

[英]Downside of using View Controller Containment

我开发了许多iOS应用程序,并在页面管理等方面构建了非常复杂的用户流。

在许多情况下,UINavigationController堆栈非常适合推送可能的页面树,但缺乏我想要的许多可定制性。

当需要这种可定制性时,我最终会使用很多ViewController容器。 看起来像这样:

//ParentViewController.m
@interface ParentViewController ()

@property (nonatomic, strong) ChildViewController *childViewController;

@end

@implemenation ParentViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.childViewController = [[ChildViewController alloc]init];
    [self addChildViewController:self.childViewController];
    [self.view addSubview:self.childViewController.view];
    [self.childViewController didMoveToParentViewController:self];
}

当然,现在这是一个非常简单的示例,并且将子类UIViews作为VC的主视图和更多逻辑,它要复杂很多倍,但是有时我有时甚至嵌套在不同的VC中5到10次。

所以我的问题是:在进行VC遏制时,在内存和实用性方面是否有任何不利之处(当然,除了手动处理堆栈的额外工作(例如“后退”按钮)之外)?

我要说的是复杂性,因此可维护性是视图控制器包含的主要缺点。 要正确使用View Controller遏制,您需要做很多微妙的工作,否则事情可能会以奇怪的方式破裂。

有关正确实施视图控制器包含的更多技术帮助,请参阅: https : //developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html#//apple_ref/doc/uid/TP40007457-CH11-SW1

...尤其要确保阅读标题为向内容添加子视图控制器的部分

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM