但是在iOS 7中(不了解其他版本)它根本不能正常工作.
我创建了一个简单的存储库,以便您可以更好地了解正在发生的事情.
转换中有一些故障.
当您在第一个视图中点击一行时,第二个视图将被推入导航控制器,但是有一个奇怪的效果.似乎行透明度起到了这个作用.
另一个问题是,当你回到前一个视图控制器时,会从导航堆栈中弹出一个视图控制器的微妙阴影.正如我之前所说,你可以通过运行简单的Xcode项目得到我的意思.
回购:https://github.com/socksz/FixedBackgroundImage
有任何想法吗?我已经尝试为每个控制器设置背景图像,但这不是我想要的,因为这样图像“重叠”了前一个背景图像,并不是所需的效果.
希望我解释得很好.
编辑1
似乎问题出现是因为iOS 7管理两个视图控制器之间的转换的方式.在你进入第二个视图控制器并尝试使用滑动手势转向上一个控制器时,您可以看到,当您开始手势时,第一个控制器出现在第二个控制器(您正在看到的控制器)下方,并且,因为UITableViewCells有透明背景,你已经看到第一个控制器.其实我担心没有解决方案.遗憾的是,如果不在每个控制器上设置背景图像,我就无法获得固定的背景图像.
解决方法
UIImageView *bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background-image"]]; bgImageView.frame = self.view.bounds; [self.view addSubview:bgImageView]; [self.view sendSubviewToBack:bgImageView];
我克隆了你的Github存储库,并在两个视图控制器的viewDidLoad中添加了上面的代码片段.我还在同一方法中添加了以下代码行 –
self.tableView.opaque = NO;
我在didFinishLaunchingWithOptions中注释掉了你设置背景颜色的代码.通过这些更改,在视图控制器之间导航时的工件消失了.我测试了iPhone Retina(3.5英寸)以及iPhone Retina(4英寸)模拟器.
在故事板中导航到ViewController和从ViewController导航时看到工件的原因需要进行一些调查.我的建议可能适用于您的要求,也可能不适用,但是,您可以尝试将其作为解决方案.