如何在Iphone相机返回时切换视图?

时间:2010-11-20 03:30:15

标签: iphone cocoa-touch ios4

我是Iphone开发的新手。我正在处理涉及两个视图的应用程序。我有一个摄像头按钮,可打开默认的Iphone摄像头。这是通过在ViewOneController中的相机按钮IBAction中使用此代码实现的:

UIImagePickerController *picker =
[[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = NO;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentModalViewController:picker animated:YES];
[picker release];

第一个视图的视图控制器也是摄像机的UIImagePickerControllerDelegate。单击图片并且相机视图返回到函数imagePickerController:didFinishPickingWithMediaInfo我执行此操作:

(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    [picker dismissModalViewControllerAnimated:YES];
 [self presentModalViewController:ViewTwoViewController animated:YES];
}

所以基本上我想要实现的只是从viewone点击“拍照”--->打开相机 - >完成相机后跳转到查看两个。与flickr应用程序中的内容完全相同。然而,在我从相机拍摄照片后,我的应用程序返回查看一个,并且未显示视图二。我在这里缺少什么?

同样从概念的角度来看,我猜IOS会为任何应用程序保留一堆视图。当调用presentModalViewController时,将显示视图并将其添加到堆栈中,并且当调用dismissModalViewController时,将从堆栈中删除视图并显示父视图。是吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您可能需要在viewWillAppear中调用[self presentModalViewController:ViewTwoViewController animated:YES],这将在删除选择器视图后调用。 您可能还需要通过一些检查来围绕呼叫,以便仅在适用时呈现viewTwo。