object-c IOS 8中方法调用的奇怪行为
我有一个视图控制器object-c IOS 8中方法调用的奇怪行为,ios,objective-c,uistatusbar,Ios,Objective C,Uistatusbar,我有一个视图控制器 - (BOOL)prefersStatusBarHidden { return YES; } 以前有人打过电话吗 - (void)viewDidLoad { [super viewDidLoad]; } 我是另一个视图控制器,首先调用viewDidLoad,然后调用preferssStatusBarHidden 我希望在viewDidLoad之前调用首选StatusBarHidden 请帮忙 这似乎是调用方法的顺序: initWithCoder: 从笔尖醒
- (BOOL)prefersStatusBarHidden {
return YES;
}
以前有人打过电话吗
- (void)viewDidLoad
{
[super viewDidLoad];
}
我是另一个视图控制器,首先调用viewDidLoad
,然后调用preferssStatusBarHidden
我希望在viewDidLoad
之前调用首选StatusBarHidden
请帮忙 这似乎是调用方法的顺序:
因此,您需要重新考虑您的体系结构,这样您就不会假设在
首选StatusBarHidden
之前调用了viewDidLoad
,对于选项卡栏控制器中的简单视图控制器,我为iOS 8.3获得了此订单
13:57:46.610 loadView
13:57:46.612 viewDidLoad
13:57:46.612 updateViewConstraints
13:57:46.613 viewWillLayoutSubviews
13:57:46.613 viewDidLayoutSubviews
13:57:46.614 viewWillAppear:
13:57:46.616 prefersStatusBarHidden
13:57:46.616 viewWillLayoutSubviews
13:57:46.616 viewDidLayoutSubviews
13:57:46.712 viewDidAppear:
查看视图willlayoutsubviews
/viewdillayoutsubviews
调用两次的原因是,任何转换动画都发生在这两个视图之间
我希望如果有动画,状态栏的消失也会被动画化,这可能是调用preferssStatusBarHidden
的原因
因此,无论您想在viewdiload
中执行什么操作,都更适合于viewWillLayoutSubviews
或viewdillayoutsubviews
我使用了以下代码:我认为您对通话顺序没有任何影响。你要那个订单干什么?你不能保证先叫哪个。我需要这个。在设置视图之前,我正在设置一些视图。我希望状态栏被隐藏。这是一个动画应用程序。使用状态栏时,初始化会出现一些设计失真。您知道,当viewcontroller出现在屏幕上时,状态栏将被隐藏。这难道不足以让你在设置动画时牢记这一点吗?事实上它不是这样的。首先是视图,然后状态栏被隐藏。奇怪的是,由于断点,viewDidLoad在PreferencesStatusBarHidden之前被调用。这就是我要反对的。你确定它是同一个viewController吗?你能检查stacktrace它们是否不是从其他地方手动调用的吗?是的,它是同一个视图控制器。你已经验证它们不是手动调用的吗?与视图控制器或其显示方式不同的任何其他内容?