1

以下は私のコードです..

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で動作します。ズームと縮小を実現する他のアイデア。

4

2 に答える 2

1

-presentModalViewController一緒に-addSubview使用することは想定されていないため、まったく異なります。参照:ビュー コントローラーの addSubview メソッドはいつ使用する必要がありますか?

2行目または3行目を削除するとエラーが解消されると思います。

于 2013-01-30T12:20:34.453 に答える
0

プレゼンテーション スタイルを間違って設定していました..このようにする必要があります..

self.modalPresentationStyle = UIModalPresentationCurrentContext;

現在のコンテキストにある必要があります。したがって、現在提示されているView Controllerビューは、白い背景ではなく透明な背景に描画されるため、ビューを縮小している間、その背後に白い背景はありません。

于 2013-02-02T14:50:18.167 に答える