有的view很好解决有的怎么也搞不定,可是最后发现,这四行代码解决全部问题 ios
viewController.edgesForExtendedLayout = UIRectEdgeNone; viewController.extendedLayoutIncludesOpaqueBars =NO; viewController.modalPresentationCapturesStatusBarAppearance =NO; viewController.navigationController.navigationBar.translucent =NO;
一般前两句就能解决问题,不行加后两句 spa
若是类自己就继承UIViewController的话就直接在viewDidLoad或viewDidAppear方法里 code
self.edgesForExtendedLayout = UIRectEdgeNone;和剩下的三个,否则就像上面这样
ios7真蛋疼 继承
补充 ,上面那个其实只是个取巧的作法。这样会带了个问题,就是若是跳到不一样的view有多个通知栏的话,那跳转以后通知栏的颜色换传递个他的parent通知栏(这是个人状况,不知道其余人有没有) io
因此真正要解决的要不就用同一个通知栏,更改上面的信息,要不就用多个通知栏,可是记得要修改parent通知栏的熟悉。像这样: class
self.parentViewController.edgesForExtendedLayout = UIRectEdgeNone; self.parentViewController.extendedLayoutIncludesOpaqueBars =NO;