0

xcode-4.2でコーディングを行い、xcode-4.5.1を更新した後、アプリが完全に実行され、ウィンドウをクリックしてナビゲートすると、次のエラーが表示されます。

Warning: Attempt to present <learnview: 0x8876220> on <UINavigationController: 0x8866e10> whose view is not in the window hierarchy!

関数をviewdidload()からviewdidappear()に変更しても同じエラーが表示されますか?解決するのを手伝ってください

編集:

    -(void)goright
   {
    CATransition* transition = [CATransition animation];
    transition.duration = 1.5;
   transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
    transition.type = kCATransitionPush;
    learnview *lview=[[learnview alloc]initWithNibName:@"learnview" bundle:nil];
    transition.subtype = kCATransitionFromRight; //kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom
    [self.navigationController.view.layer addAnimation:transition forKey:nil];
   [[self navigationController] pushViewController:lview animated:NO];

    [imagetim invalidate];    
    }     
4

1 に答える 1

0

viewWillAppear:またはでこのメソッドを呼び出すviewDidAppear:

アニメーションでコードの下を試してください...

-(void)goright
{
    CATransition *animation = [CATransition animation];
    [animation setDelegate:self];   
    [animation setType:kCATransitionPush];
    [animation setDuration:1.5];
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:
                                  kCAMediaTimingFunctionEaseInEaseOut]];
    [animation setSubtype:kCATransitionFromRight];
    [[self.view layer] addAnimation:animation forKey:@"transitionViewAnimation"];

    learnview *lview=[[learnview alloc]initWithNibName:@"learnview" bundle:nil];
    [[self navigationController] pushViewController:lview animated:NO];

    [imagetim invalidate];    
}

アニメーションなしで、以下のコードを試してください...

-(void)goright
    {

        learnview *lview=[[learnview alloc]initWithNibName:@"learnview" bundle:nil];

        [self.navigationController pushViewController:lview animated:YES];

        [imagetim invalidate];    
    }     

これを試して

于 2012-10-26T06:17:37.040 に答える