1

私は通常のNavigationControllerを持っています。1つのmodalViewを(セグエを使用して)開いて閉じると、NavigationControllerからの次のすべてのプッシュおよびポップアニメーションが乱雑になります。

基本的にはナビゲーションバーをアニメーション化するだけですが、そのビューのコンテンツは(左または右に)アニメーション化されません!

詳細:

  1. NavigationControllerAはviewControllerBをプッシュします。
  2. ViewControllerBはmodalViewに対応しています。
  3. ModelViewは閉じられます。
  4. ユーザーがviewControllerBの戻るボタンを押す->左側(ViewController Aへ)のアニメーションは表示されません!

誰かが何が起こっているのか知っていますか?

いくつかのコード(2.show modal):

- (void)sendFilesDidPick:(SendFilesType)type{
    switch (type) {
        case Library:
            if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]){
                UIImagePickerController *picker = [[UIImagePickerController alloc] init];
                picker.delegate = self;

                picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
            picker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
            picker.allowsEditing = YES;
            [self presentModalViewController:picker animated:YES];
        }else {
            ////TODO: Tell user not available
        }
        break;
    default:
        break;
    }
}

いくつかのコード(3.):

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{

    [self dismissModalViewControllerAnimated:YES];
}

手がかりがあります。モーダルビューが表示されて閉じた後、消える可能性のある他のすべてのビューは「ViewWillDissapear」を呼び出しません。そして、これはおそらくすべてのものを殺しているものです。

4

1 に答える 1

2

OK私は問題を見つけました!

タブバーをサブクラス化しました。私のサブクラスでは、これを行っていました:

- (void)viewDidAppear:(BOOL)animated {
     //Custom code
}

私はこれに変更しました:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    //Custom code
}

そして今、すべてが適切に機能しているようです!!

于 2012-07-06T09:58:28.083 に答える