在转换过程中使用popViewController闪烁白色的麻烦

时间:2011-06-04 17:13:16

标签: uinavigationcontroller transition popviewcontroller

我一直在努力使用UINavigationalController在视图之间切换。我已多次使用此系统而没有问题,但在我的新应用程序中它无法正常工作。

以下是问题: 当我推动一个新的视图控制器时,我使用以下代码:

NewViewController *newVC = [[NewViewController alloc] initWithNib:@"NewView" bundle:nil];
[self.navigationController pushViewController:newVC animated:YES];
[newVC release];

我用来返回newVC内部的上一个视图的代码是:

[self.navigationController popViewControllerAnimated:YES];

我读到这可能会释放self.navigationController本身,所以我实现了这段代码:

UINavigationController *nc = [self navigationController];
[nc popViewControllerAnimated:YES];

在没有白色闪光的情况下平滑过渡到newVC的结果是什么,但是当返回原始页面时,屏幕会闪烁白色,就像它在转换回原始页面之前释放newVC一样。然而!在调试时,我在原始页面的viewWillAppear和newVC的dealloc以及带有白色闪存的viewWillAppear +转换上放置断点,在调用newVC的dealloc之前全部完成。

如果有人可以帮助发光,我会非常感激。

谢谢! 〜Arash的

3 个答案:

答案 0 :(得分:10)

这是一篇旧帖子,但对于那些可能在将来遇到此问题的人,我已经通过将ViewController视图的clipsToBounds属性设置为“TRUE”来解决它

-(void)viewDidLoad {
    [super viewDidLoad];
    self.view.clipsToBounds = YES;
}

答案 1 :(得分:0)

尝试将导航堆栈上各种视图的背景颜色更改为不同的可识别颜色(包括主窗口)。其中一个可能出于某种原因显示,如果每个人都有不同的颜色,你可以很容易地确定哪一个是罪魁祸首。

答案 2 :(得分:0)

FWIW,在Swift应用程序中发生了同样的问题。根本原因似乎是我这样做:

self.navigationItem.rightBarButtonItem = nil

...动态隐藏按钮,UIBarButtonItem在当前UIViewController中有一个插座。

我实际上并不需要IBOutlet那个按钮,所以我删除了插座,它起作用了。