gpt4 book ai didi

ios5 - 如何在 View Controller 容器中呈现第一个 View Controller

转载 作者:行者123 更新时间:2023-12-01 21:21:12 24 4
gpt4 key购买 nike

我正在根据有关 View Controller 的 iOS 文档编写自定义 View Controller 容器,并且正在努力寻找一种优雅的方式来呈现第一个 View Controller ,该 View Controller 还转发相关的显示消息,例如 viewWillAppear: 自动。

当我尝试将 transitionFromViewController:toViewController:duration:options:animations:completion:fromViewController: 作为 nil 时,我收到错误。我使用 UIView 动画 block 将 View 动画化到 View 层次结构中。这似乎破坏了外观方法的自动转发,意味着我有责任在适当的时间调用 viewWillAppear:ViewDidAppear: 。是否有更有效的方法将第一个 View 转换到负责外观和旋转方法的屏幕上?

我的代码看起来有点像这样在第一个 View Controller 中设置动画。

self.visibleViewController = [[UIViewController alloc] init];
[self addChildViewController:self.visibleViewController];

[self.visibleViewController viewWillAppear:YES];
[self.visibleViewController.view setAlpha:0];
[self.view addSubview:self.visibleViewController.view];

[UIView animateWithDuration:0.5
delay:0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.visibleViewController.view.alpha = 1;
}
completion:^(BOOL finished){
[self.visibleViewController viewDidAppear];
[self.visibleViewController didMoveToParentViewController:self];
}];

最佳答案

答案就一直隐藏在文档中。

UIViewController 的文档是

- (void)beginAppearanceTransition:(BOOL)isAppearing 动画:(BOOL)animated

和同伴

- (void)endAppearanceTransition

他们的文档说永远不要从您自己的代码中调用 viewWillAppear 等。您可以使用这些方法正确地启动链条。

关于ios5 - 如何在 View Controller 容器中呈现第一个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10505149/

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