似乎 iOS 编程的一个特殊方面是诊断这些奇怪的、看似微不足道但令人沮丧、晦涩难懂的小问题。
所以今天兴高采烈地忙着最近的iOS项目,决定把项目升级到最新版本的ECSlidingViewController,到底有什么坏处呢?只需更新一些已弃用的方法即可。
所以我做了所有这些。一切都很好,很漂亮。但是,我注意到状态栏的行为很奇怪!当我显示我的一个时它没有出现,underLeftViewController
当我将 segue 那个特定推underLeftViewController
入它的后续 VC 之一时,它处于一种奇怪的阴影中。什么??这怎么可能发生?反正一张图值一千字:
所以这里表现得很好很正常:
现在它消失了!!!:
现在它有一个奇怪的阴影!!!:
这是滑出滑动视图控制器的应用程序图片:
我一定是在某个地方对状态栏做了什么疯狂的事情,然后我想。
因此,我查看了状态栏表现得很疯狂的 VC 的实现文件。它实际上是 的子类,除了行之外UINavigationController
它是空的。所以这里没有什么可疑的。viewDidLoad
[super viewDidLoad]
该run test
页面实际上是rootViewController
navVC 的,所以我查看了它。我把我所有的视图设置代码都放在了它的viewDidLoad
里面,它看起来是这样的:
- (void)viewDidLoad
{
[super viewDidLoad];
// remove advanced button
self.navigationItem.rightBarButtonItem = nil;
self.navigationController.view.layer.shadowOffset = CGSizeMake(1, 0);
// setupGaugeView
[self setupGauge];
// add run test button
[self setupRunTestButton];
// setup notification container
CGRect notificationContainerFrame;
if ([WRGlobalHelper currentDeviceVersion] >= 7) {
CGFloat statusBarHeight = [WRGlobalHelper statusBarHeight];
notificationContainerFrame = CGRectMake(0, [[self.navigationController navigationBar] bounds].size.height+statusBarHeight, self.view.bounds.size.width, 1);
for (UIView *subview in self.view.subviews) {
CGRect newFrame = subview.frame;
newFrame.origin.y += [WRGlobalHelper statusBarHeight];
subview.frame = newFrame;
}
} else {
notificationContainerFrame = CGRectMake(0, [[self.navigationController navigationBar] bounds].size.height, self.view.bounds.size.width, 1);
}
self.notificationContainerView = [[UIView alloc] initWithFrame:notificationContainerFrame];
self.notificationContainerView.clipsToBounds = NO;
self.notificationContainerView.layer.backgroundColor = [UIColor clearColor].CGColor;
[self.view addSubview:self.notificationContainerView];
// some other unrelated stuff omitted....
}
状态栏表现正常或奇怪但有阴影的 VC 的 `viewDidLoad' 也很简单,它们看起来像
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[self.view addGestureRecognizer:self.slidingViewController.panGesture];
}
心烦意乱,我在这一点上放弃了。我已经在这个问题上花了将近 2 个小时,一想到状态栏消失,我的大脑就很痛。全能无所不知的SO,请帮助我!非常感谢!