gpt4 book ai didi

ios - 关闭 UIViewController 时闪烁

转载 作者:行者123 更新时间:2023-11-29 01:32:12 25 4
gpt4 key购买 nike

我有一个 UIViewController,我用它来显示视频广告。一旦用户点击关闭广告按钮,我就会关闭 View Controller ,但在它被关闭并显示父 View 后不久就会出现闪烁。

这是我在代码中所做的:

@interface myController:UIViewController
@end

static myController* vc = [[myController alloc] init];

@implementation myViewController

-(void) showController
{
[currentViewController presentViewController : self animated : NO completion : nil];
}

-(void) hideController
{
[self dismissViewControllerAnimated : NO completion : nil];
}

-(void) startPlaying
{
dispatch_async(dispatch_get_main_queue(), ^{

[vc showController];
//call the method which will play the video.
});

}

-(void) viewClosed
{
dispatch_async(dispatch_get_main_queue(), ^{

[vc hideController];

});
}
@end

无法获取屏幕截图,因为它发生得很快。

我已经尝试使呈现的 View 透明,因为我认为在关闭后,闪烁是由于关闭视频广告然后尝试关闭呈现 View Controller 后的延迟造成的。它有效,但在解雇后,父 View 似乎试图进入纵向模式而不是横向模式。这是它的屏幕截图:

之前: Before

之后: After

最佳答案

您的根本问题是动画需要时间

为 iOS 编程实际上并不那么容易。假设您需要一个动画来摆脱 View Controller 。很好。

您必须使用完成 block - 您必须等待动画关闭,并且只有这样(在完成 block 中)才能继续其他事件。

简而言之,在关闭 View Controller 时,您必须在所有情况下使用完成 block 。

关于ios - 关闭 UIViewController 时闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33341732/

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