【问题标题】:iOS Navigationbar changes color during animationiOS导航栏在动画期间改变颜色
【发布时间】:2014-06-04 19:36:22
【问题描述】:

我在 iOS 7 中的模拟器和设备上都有一个奇怪的图形问题。

在按下表格视图中的单元格后,我以编程方式从情节提要中调用 segue:

[self performSegueWithIdentifier:@"showTerminDetailView" sender:self];

然后我夸大一些值:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showTerminDetailView"]) {
    Termin *termin = [self termineAtDate:self.currentday][[((TerminDayTableViewTableViewController *)self.terminTableViews[3]).tableView indexPathForSelectedRow].row];
    TerminDetailViewController *terminDetailViewController = segue.destinationViewController;
    terminDetailViewController.termin = termin;
}

}

问题是导航栏右侧在动画过程中变暗了:

欢迎任何帮助!

【问题讨论】:

  • 你到底在做什么:Termin *termin = [self termineAtDate:self.currentday][[((TerminDayTableViewTableViewController *)self.terminTableViews[3]).tableView indexPathForSelectedRow].row];???
  • 您是否正在将垃圾箱潜入存储的视图控制器?这是非常可疑的。如果您注释掉该行(并且不设置目的地的termin),问题会消失吗?
  • @matt 看起来他只是在视图控制器之间传递数据
  • @Bot 不,它没有 - 他不应该有一个叫做 self.terminTableViews 的东西,它是一个视图控制器数组

标签: ios objective-c cocoa-touch uinavigationbar


【解决方案1】:

这是正常行为。 iOS7 导航栏默认是半透明的,所以你可以看到它下面的内容。您的问题可能是以下问题之一

  • 控制器设置为仅显示在导航控制器下方。
  • 您的推送视图控制器上有self.navigationController.navigationBar.translucent = NO;,因此它从半透明变为非半透明
  • 您有 self.edgesForExtendedLayout = UIRectEdgeNone;,它再次将内容向下移动,这将使导航控制器下面没有内容
  • 您在导航栏后面的推送视图控制器中显示了一些内容。

【讨论】:

  • 组合'self.navigationController.navigationBar.translucent = NO;'和'self.navigationController.navigationBar.translucent = NO;'在原始和推送的视图控制器中修复了它。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-17
  • 2018-04-27
  • 2020-01-21
  • 2018-06-06
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
相关资源
最近更新 更多