2010-01-22 88 views
0

我有一个主要的UIViewController是在启动时创建的,我只用于在2个不同的视图控制器之间切换显示模态。切换显示2个不同的视图控制器modaly

这里我的代码,不会开关:

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

    [self dismissModalViewControllerAnimated:NO]; 

    PreviewView *previewViewController = [[PreviewViewController alloc] initWithNibName:@"PreviewView" bundle:nil]; 
    previewViewController.delegate = self; 
    [self presentModalViewController:previewViewController animated:YES]; 
    [previewViewController release]; 
} 

- (void)previewViewControllerdoneButtonPressed:(AnotherViewController*)controller { 

    [self dismissModalViewControllerAnimated:YES]; 

    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 
    imagePicker.delegate = self; 
    [self presentModalViewController:imagePicker animated:NO]; 
    [imagePicker release]; 
} 

在第一种方法中,交换机的工作原理,但不是在第二位。我想知道为什么。

谢谢!

+0

想知道,在dismissModalViewControllerAnimated:和presentModalViewController:方法中使用的'动画'参数是否有任何原因在每种方法中都不相同? – 2010-01-22 17:56:00

+0

是的,这是因为我想让previewView显示/解除动画,但不是imagePicker。谢谢! – Yoshi 2010-01-22 18:13:07

回答

0

在第二种方法中,您首先要求self关闭。然后再次询问self以呈现新的视图控制器。这是不正确的。您想要让AnotherViewController的'父'显示UIImagePickerController。

你可以尝试的一件事是在之后将解雇移到现在。

+0

在提交新控件之前,我应该解散当前控制器(已经用其他方法呈现),不是吗? – Yoshi 2010-01-22 18:37:49

相关问题