在 Storyboard 中,我有一个 TableViewController 和一个到 DetailViewController 的推送 segue。 TableVC 嵌套在导航 Controller 中。我在 Storyboard 中将 DetailViewController View 设置为黑色背景。 DetailVC 还包含一个在其 viewDidLoad 中加载的 webview。我在 TableVC 的 prepareForSegue 中将 webview 的 URL 传递给 DetailVC。
在点击单元格时执行推送转场时,我遇到了一些奇怪的行为。在执行 segue 之后,DetailVC 的 View bg 颜色会短暂地变为白色(导航栏显示正常)。然后 View 的 bg 颜色变为黑色(它在 Storyboard中设置为黑色)。然后加载 webview。我不确定是什么导致 DetailVC 的 View bg 颜色延迟。
这是我的 prepareForSegue 方法:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"Radio Show Playback"])
{
RadioShowPlaybackVC *radioShowPlaybackVC = segue.destinationViewController;
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
radioShowPlaybackVC.radioShowData = self.radioShows[indexPath.row];
}
}
编辑: 跟webview有关系。当我删除 webview 时,segue 会根据需要进行转换。
编辑:我目前的解决方法是隐藏 webview 直到它加载。未加载时,bg颜色显示为白色,不可修改。
最佳答案
如果您从未解决问题,您一定要听听 Vito 关于主线程的回答。但还要将以下内容添加到您的代码中:
[webView setBackgroundColor:[UIColor clearColor]];
[webView setOpaque:NO];
如果它仍然显示白色,只需将 clearColor 更改为 blackColor。
关于objective-c - Push segue 在加载 View 之前短暂显示空白屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13314193/