以下は私のコードです..
TestTemp1ViewController *temp=[[TestTemp1ViewController alloc]init];
[self.view addSubview:temp.view];
[self presentModalViewController:temp animated:FALSE];
このコードは iOS 5.0 では問題なく動作しますが、iOS 6.0 ではクラッシュします。
Crash report: [UIViewController loadViewIfRequired]-- bad excess
これが iOS 6.0 で機能しない理由がわかりません。みんな、それは良い方法ではないことはわかっていますが、私がやろうとしているのは、ビューコントローラーにアニメーションの拡大と縮小を表示することです。プレゼンテーション後にこれを行うと、View Controller の白い背景が表示されます。
以下は私のコードです...
-(void)animateGrowAndShrink:(ViewController *)controller1 {
//self.view.userInteractionEnabled=NO;
[self.view addSubview:controller1.view];
[self presentModalViewController:self.controller animated:FALSE];
if (dayTimeLineIsShown) {
//shrink dayTimeLineIsShown=FALSE;
[UIView beginAnimations:@"animationShrink" context:NULL];
[UIView setAnimationDuration:.61f];
controller1.view.transform=CGAffineTransformMakeScale(.01f,.01f);
} else {
//expand dayTimeLineIsShown=TRUE;
controller1.view.transform=CGAffineTransformMakeScale(0.01,0.01);
[UIView beginAnimations:@"animationExpand" context:NULL];
[UIView setAnimationDuration:.60f];
timeLine.view.transform=CGAffineTransformMakeScale(1, 1);
}
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[UIView commitAnimations];
}
-(void)animationDidStop:(NSString *)animationID finished:(BOOL)finished context:(void *)context{
self.view.userInteractionEnabled=YES;
if ([animationID isEqualToString:@"animationExpand"]) {
[self presentModalViewController:self.controller1 animated:FALSE];
} else {
self.controller.view.hidden=true;
}
}.
また、これを行っているコントローラーもモーダルに表示され、それを削除するとios 6で動作します。ズームと縮小を実現する他のアイデア。