1

我有一个普通的 NavigationController。当我打开一个 modalView(使用 segues)并关闭它时,来自 NavigationController 的所有下一个推送和弹出动画都会变得混乱。

基本上它只动画导航栏,但该视图的内容没有动画(向左或向右)!

细节:

  1. NavigationController A 推送 viewController B。
  2. ViewController B 提供了一个 modalView。
  3. 模型视图被解雇。
  4. 用户在 viewController B 中按下后退按钮 --> 左侧(到 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

好的,我发现了问题!

我有一个标签栏子类。在我的子类中,我正在这样做:

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

我改成这样:

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

现在每件事似乎都正常工作!

于 2012-07-06T09:58:28.083 回答