如何关闭相机并导航到根视图控制器?
Posted
技术标签:
【中文标题】如何关闭相机并导航到根视图控制器?【英文标题】:How to dismiss camera and navigating to the root view controller? 【发布时间】:2012-04-03 06:04:05 【问题描述】:我创建了 3 个视图。 第一个视图是主页,第二个是库存视图,第三个是叠加视图。 现在使用 pushviewcontroller 从主屏幕导航到库存视图屏幕。 在库存视图中,我有一个捕获按钮。捕获按钮将在叠加视图上打开相机。 现在的问题是覆盖视图中有一个称为返回按钮的按钮,当我单击此按钮时,我想导航到主屏幕,但为此我需要首先关闭相机。这怎么可能?
库存视图中的捕获按钮
-(IBAction) btnCapture:(id) sender
@try
[self showImagePicker:UIImagePickerControllerSourceTypeCamera];
@catch (NSException *exception)
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Camera" message:@"Camera is not available " delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[alert release];
在 OverlayView 后退按钮事件中:
-(IBAction)btnBack:(id)sender
app.navcntr=1;
[self.delegate didFinishWithCamera];
[self dismissModalViewControllerAnimated:YES];
在库存视图中,viewWillAppear
-(void) viewWillAppear:(BOOL)animated
if(app.navcntr ==1)
[self.navigationController popToRootViewControllerAnimated:YES];
app.navcntr=0;
问题是它正在导航到主屏幕,但应用程序崩溃了。 如何解决?
谢谢。
【问题讨论】:
用一些代码编辑你的问题 你是否使用模态视图来显示相机? 请提供崩溃日志。发布崩溃日志。 @komal 如何在推送视图后推送该视图检查您释放该视图控制器... 【参考方案1】:我认为您试图关闭您的相机视图两次。我的意思是didFinishWithCamera
方法会忽略它。删除[self dismissModalViewControllerAnimated:YES];
这一行
-(IBAction)btnBack:(id)sender
app.navcntr=1;
[self.delegate didFinishWithCamera];
已编辑
当您不在屏幕上时(“将出现”),您不应执行动画。
把你的代码写在viewDidAppear
like
-(void) viewDidAppear:(BOOL)animated
[super viewDidAppear:animated];
if(app.navcntr ==1)
[self.navigationController popToRootViewControllerAnimated:YES];
app.navcntr=0;
【讨论】:
wait_fences:收不到回复:10004003 @komalmehta:这是什么?崩溃日志??【参考方案2】:您需要从拥有 UIImagePickerController 的控制器中关闭模态视图控制器。
-(IBAction)whilePoppingBack:(id)sender
[controllerWhichContainsPicker dismissModalViewControllerAnimated:YES];
//完成后,您可以通过popToRootViewController方法愉快地导航到主视图控制器。
PS 注意:查找 controllerWhichContainsPicker 是另一回事,这取决于您创建的视图层次结构,基于您需要先关闭它,稍后您需要执行其他操作,例如导航和其他视图操作。
//另一件事是我怀疑是内存泄漏(正如你在这里提到的:wait_fences: failed to receive reply: 10004003)。尝试运行仪器工具或 NSZombie 或 NSMallocGaurd 以启用并尝试找出泄漏的位置,如果上面的代码似乎没有解决问题。
如果你能摆脱它,请告诉我!
【讨论】:
以上是关于如何关闭相机并导航到根视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章