有的view很好解决有的怎么也搞不定,但是最后发现,这四行代码解决所有问题
viewController.edgesForExtendedLayout = UIRectEdgeNone;viewController.extendedLayoutIncludesOpaqueBars =NO;viewController.modalPresentationCapturesStatusBarAppearance =NO;viewController.navigationController.navigationBar.translucent =NO;
通常前两句就能解决问题,不行加后两句
如果类本身就继承UIViewController的话就直接在viewDidLoad或viewDidAppear方法里
self.edgesForExtendedLayout = UIRectEdgeNone;和剩下的三个,不然就像上面这样
ios7真蛋疼
补充 ,上面那个其实只是个取巧的做法。这样会带了个问题,就是如果跳到不同的view有多个通知栏的话,那跳转之后通知栏的颜色换传递个他的parent通知栏(这是我的情况,不知道其他人有没有)
所以真正要解决的要不就用同一个通知栏,更改上面的信息,要不就用多个通知栏,但是记得要修改parent通知栏的熟悉。像这样:
self.parentViewController.edgesForExtendedLayout = UIRectEdgeNone;self.parentViewController.extendedLayoutIncludesOpaqueBars =NO;