我创建了3个视图。
第一个视图是首页,第二个视图是广告资源,第三个视图是重叠视图。
现在,使用pushviewcontroller从主屏幕开始,我导航至清单视图屏幕。
在清单视图中,我有一个捕获按钮。拍摄按钮将在overlayview上打开相机。
现在的问题是,overlayview中有一个名为“后退”按钮的按钮,当我单击该按钮时,我想导航到主屏幕,但是为此,我需要首先关闭相机。这怎么可能?
库存视图中的“捕获”按钮
-(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;
}
问题是它正在导航到主屏幕,但应用程序崩溃了。
怎么解决呢?
谢谢。
最佳答案
我认为您正在尝试关闭相机视图两次。我的意思是didFinishWithCamera
方法将其关闭。删除行[self dismissModalViewControllerAnimated:YES];
-(IBAction)btnBack:(id)sender
{
app.navcntr=1;
[self.delegate didFinishWithCamera];
}
编辑过
当您不在屏幕上时,您不应执行动画(“将出现”)。
用
viewDidAppear
编写代码,例如-(void) viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if(app.navcntr ==1)
{
[self.navigationController popToRootViewControllerAnimated:YES];
}
app.navcntr=0;
}