iOS 8 viewDidLoad模态演示文稿导致多个演示文稿
所以我有一个屏幕可以检查某些属性,并且在定义的情况下会立即在viewDidLoad
中模态地加载另一个视图,而不使用动画在当前加载的视图上不要显示下面的视图)。在iOS8之前完成这个操作之后,原始视图会暂停其加载(不会继续执行viewWillAppear
,viewDidLayoutSubviews
等),直到覆盖控制器被解除为止。我发现这种行为适合我的需求,因为原始视图中元素的任何动画都可以完成。但是,在iOS 8中,我得到了完全不同的事件链。首先,由于某种原因,viewDidLayoutSubviews
被调用两次(什么与怎么了?),但更重要的观点是不喜欢另一个控制器被弹出所有随时随地viewDidAppear
之前,抱怨unbalanced calls to begin/end appearance transitions
。不仅如此,但底层viewController
继续与它的加载(viewWillAppear
,viewDidLayoutSubviews
等),即使它没有被显示这会导致这些事件的所有方法火。我很感激苹果是否已经更新了这种方式的意图是要实现的,所以如果新元是一个完全不同的过程,我愿意采用,但是,因为它是我无法得到适当的工作。iOS 8 viewDidLoad模态演示文稿导致多个演示文稿
我会很感激如何得到这个模式的看法,而不会导致基础视图继续它的加载插话任何帮助。
谢谢,
迈克
更新:将带来一些代码下面是主viewController
呈现模态VC,如果需要的viewDidLoad
。
-(void) viewDidLoad{
if(hasNotSeenTutorial){
TutVC* vc = [[TutVC alloc] initWithNibName:@"tutNib" bundle:nil]
vc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self.navigationController presentViewController:vc animated:NO completion:^{
NSLog(@"Has Completed Presentation");
}];
}
}
这是问题所在。在viewDidLoad
这里调用演示文稿,导致演示VC继续。在iOS 8之前,如果VC尚未呈现,则会暂停,直到模态VC被解散为止,然后将像往常一样完成。根据我原来的文章,iOS 8并非如此。
苹果已经取得了它的规则与iOS 8.严格的给你举个例子,我会通过我开车这点 - 在我的软件,我用弹出一些从导航堆栈,只是后视图控制器,推一个新的,但流行是从未在ios7中看到,只有推转换似乎发生(当逻辑上,流行应该已经看到,然后推)。而在ios 8中,这件事发生了变化。现在只有在看到并注意到流行音乐后才能看到推送。这相当糟糕地打破了用户体验。
我已经注意到这个严格的其他领域,但这些都不是UI/UX相关的,所以我不会去到它的细节现在。
至于你的情况去了,以我的经验,我可以告诉你,你已经在一个错误的方式在做的东西。随着苹果严格执行,您的实施似乎打破了。 我认为唯一的解决方案是在viewdidAppear中移动每个支票。
如果你想继续你正在做的ios7的方式较早您可以使用此检查:
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
// Code for ios 8 implementation
}
else
{
// Code for ios 7 implementation
}
虽然我会建议你避免因为笏ü的目标是完全可以实现的。 此外,您正在做的事情很容易导致导航堆栈中的不一致,导致应用程序崩溃。
不确定为什么这个被拒绝。如果苹果改变了内部规则,我们需要了解它。我现在正在处理一个问题(http://stackoverflow.com/questions/25987244/autolayout-problems-with-ios8-with-code-that-works-fine-on-ios7),我想知道如果我可能会陷入类似的网络。 – Gallymon 2014-09-26 20:01:59
哇!投下来!至少我的尝试值得回复投票。非常不负责任。 – 2014-09-27 11:54:14
你可以添加一些代码来使这个故事更易于理解吗? – Sjors 2014-09-20 12:25:34
@Sjors新增了一些代码,但我担心我的解释让它变得更加复杂! – Mackey18 2014-09-20 14:06:46
您是否尝试将此块从'viewDidLoad'移动到'viewWillAppear'? – sha 2014-09-20 14:50:10