gpt4 book ai didi

ios - IOS 中的容器 View

转载 作者:可可西里 更新时间:2023-11-01 05:04:43 25 4
gpt4 key购买 nike

我想使用一个容器 View 来启动另一个 View Controller ,但我找不到任何关于如何以编程方式分配它的信息。我可以从用户界面完成,但如果我想用 coes 创建一个,并将它链接到 UIviewController,我该怎么做?它的行为与普通 UIview 一样吗?

最佳答案

如果我理解你的问题,你是在问如何在代码中使用 View Controller 包含。我建议查看 Creating Custom Container View Controllers View Controller Programming Guide 的部分,向您展示了执行此操作的代码,包括添加 subview Controller :

[self addChildViewController:content];                 // 1
content.view.frame = [self frameForContentController]; // 2
[self.view addSubview:self.currentClientView];
[content didMoveToParentViewController:self]; // 3

当使用 subview Controller 时(至少是那些不占据整个屏幕的),在父 View Controller 的 View 上有一个 UIView 是很有用的,它决定了 subview 的边界 View Controller 。它大大简化了一堆任务。在上面的代码片段中,他们假设 subview 名为 frameForContentController

或者删除一个(在此代码片段中,content 是引用要删除的子 Controller 的 UIViewController *):

[content willMoveToParentViewController:nil];  // 1
[content.view removeFromSuperview]; // 2
[content removeFromParentViewController]; // 3

如果你想用另一个子 Controller 替换一个子 Controller :

- (void) cycleFromViewController: (UIViewController*) oldC
toViewController: (UIViewController*) newC
{
[oldC willMoveToParentViewController:nil]; // 1
[self addChildViewController:newC];

newC.view.frame = [self newViewStartFrame]; // 2
CGRect endFrame = [self oldViewEndFrame];

[self transitionFromViewController: oldC toViewController: newC // 3
duration: 0.25 options:0
animations:^{
newC.view.frame = oldC.view.frame; // 4
oldC.view.frame = endFrame;
}
completion:^(BOOL finished) {
[oldC removeFromParentViewController]; // 5
[newC didMoveToParentViewController:self];
}];
}

我还建议查看 WWDC 2011 - Implementing UIViewController Containment .

关于ios - IOS 中的容器 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14014052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com