iOS 8에서 앱을 테스트 한 후 뷰 컨트롤러 초기화 및 프리젠 테이션이 정말 느리게 진행되는 것을 느낍니다. 이제 다음 0.5 초와 볼 나타납니다iOS 8 - 키 윈도우를 설정하거나 다른 앱을 닫은 후 곧바로 View Controller를 표시 할 때 글리치가 발생합니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
....
[self.window setRootViewController:_rootController];
[self.window makeKeyAndVisible];
// Conditions
if (#first launch condition#) {
// quite small controller containing Welcome showcase
WelcomeViewController *w = ....
[_rootViewController presentViewController:w animated:NO];
}
else if (#last opened item condition#) {
// pretty big container, root view controller contains
// a grid view which opens Item detail container the same way
ItemDetailController *item = ....
[_rootViewController presentViewController:item animated:NO];
}
}
이것은 아이폰 OS 8. 루트 뷰 컨트롤러와 정말 부진 지옥되었다 :
나는 아이폰 OS 6에 다음과 유사한 코드 & 7에서 작동하는 데 사용 표시된 화면으로 즉시 화면을 다시 그립니다. 또한 프레젠테이션이 느려지므로Unbalanced calls to begin/end appearance transitions _rootViewController
경고가 발생하기 시작했습니다. 그런
[self performSelector:@selector(postAppFinishedPresentation) withObject:nil afterDelay:0];
또는 뭔가를 :
초기 빠른 힌트는 다른 기능 통화를 가진 두 조건을 모두 이동이 다음 메인 실행 루프에서 처리 그래서 지연이 제로로 전화를했다. 이것은 언밸런스 드 호출 문제를 해결하지만 시각적 인 차이 (rootviewcontroller, gap, presented one)는 (분명히) 더 커집니다.
당신은 평소처럼 뭔가를 호출 할 때 프리젠 테이션의 속도 저하는 분명하다 : 부모 뷰 컨트롤러의 볼 영화에없이 직접 전환을 수행하는 데 사용되는 코드의 완전히 공정한 조각해야
// Example: Delegate caught finished Sign In dialog,
// dismiss it and instantly switch to Profile controller
-(void)signInViewControllerDidFinishedSuccessfully
{
[self dismissViewControllerAnimated:NO completion:^{
UserProfileViewController *userProfile = ...
[self presentViewController:userProfile animated:NO];
}];
}
을 iOS 7. 이제, 똑같은 일이 생깁니다. 전환 도중 부모가 제스처를합니다. 심지어 애니메이션 없이도 처리됩니다.
아무도 문제가되지 않습니까? 어떤 해결책? 내가 흠 잡을 데없이 통과해야 할 각 일에 대해 UIWindow
와 함께 들뜬 마술을 할 필요없이이 문제를 해결하고 싶습니다.
이 문제도 발생하지만 아직 해결 방법을 찾지 못했습니다. –
솔루션을 찾았습니까? –
동일한 유형의 문제도 다루고 있습니다. 해결책이 아직 없습니다. 내 코드에서 iOS 7은 아름답게 작동하지만 iOS 8은 diswiss/present viewController 콤보 사이에 끔찍한 지연이 있습니다. 동일한 애니메이션 블록에서 두 통화를 사용하지 않으려 고 시도했습니다. 애니메이션이없는 동일한 호출에서 두 가지 모두 시도했지만 아직 아무것도 아닙니다. iOS 8에는 너무 많은 숨겨진 선물이 있습니다. –