2013-01-14 131 views
1

我在我的contentviewcontroller,当我滑动页面之间我的应用程序崩溃时使用webview。
下面是我的代码:浏览器控制器与webview崩溃

contentviewcontroller.m 

#import "ContentViewController.h" 

@interface ContentViewController() 

@end 

@implementation ContentViewController 
@synthesize m_CtrlWebview,DocumentPath; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
    m_CtrlWebview.scrollView.pagingEnabled=YES; 
    m_CtrlWebview.scrollView.bounces=NO; 
    m_CtrlWebview.scalesPageToFit=YES; 
    m_CtrlWebview.backgroundColor=[UIColor clearColor]; 
    //m_CtrlWebview.scrollView.zooming=NO; 
    m_CtrlWebview.scrollView.zoomScale=1.0; 



    NSURL *url = [NSURL fileURLWithPath:DocumentPath isDirectory:NO]; 

    [m_CtrlWebview loadRequest:[NSURLRequest requestWithURL:url]]; 
} 


-(void)dealloc 
{ 
    [super dealloc]; 
} 
- (void)viewDidUnload 
{ 
    //[m_CtrlWebview stopLoading]; 
    [m_CtrlWebview release]; 
    [super viewDidUnload]; 
} 
- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 

在RootViewController的:

#pragma mark - UIPageViewControllerDataSource Methods 

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController 
     viewControllerBeforeViewController:(UIViewController *)viewController 
{ 
    NSUInteger currentIndex = [self.modelArray indexOfObject:[(ContentViewController *)viewController DocumentPath]]; 
    if(currentIndex == 0) 
    { 
     return nil; 
    } 

    ContentViewController *firstViewController = [self viewControllerAtIndex:currentIndex - 1]; 
    // ContentViewController *secondViewController = [self viewControllerAtIndex:x+1 ]; 


    return firstViewController; 



} 

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController 
     viewControllerAfterViewController:(UIViewController *)viewController 
{ 
    NSUInteger currentIndex = [self.modelArray indexOfObject:[(ContentViewController *)viewController DocumentPath]]; 
    if(currentIndex == self.modelArray.count-1) 
    { 
     return nil; 
    } 
    NSString *Path=[self.modelArray objectAtIndex:currentIndex + 1]; 
    if (![[NSFileManager defaultManager] fileExistsAtPath:Path]) 
    { 
     return nil; 
    } 
    else 
    { 
     ContentViewController *firstViewController = [self viewControllerAtIndex:currentIndex + 1]; 

     return firstViewController; 
    } 

} 

- (ContentViewController *)viewControllerAtIndex:(NSUInteger)index { 

    if (([self.modelArray count] == 0) || (index >= [self.modelArray count])) { 
     return nil; 
    } 
    ContentViewController *dataViewController; 
    dataViewController = [[ContentViewController alloc]initWithNibName:@"ContentViewController" bundle:nil]; 

    dataViewController.DocumentPath = [self.modelArray objectAtIndex:index]; 
    return dataViewController; 

} 

我怎样才能解决这个问题呢?另外如何禁用Web视图的缩放?任何帮助,提前致谢。

回答

1
return [dataViewController autorelease]; 

上述行- (ContentViewController *)viewControllerAtIndex:(NSUInteger)index解决了我的问题。

0

从这段代码,它不知道为什么应用程序崩溃。 要更具体地捕捉错误,请在Xcode中添加异常断点。 步骤做了Xcode的4.5

  1. 选择“断点导航器”,在左侧窗格中。

  2. 点击左下方的“+”按钮。

  3. 从弹出的菜单中选择“添加例外断点”

  4. 当应用程序崩溃这样设置后,请检查堆栈跟踪,看看是否有你的函数是在堆栈跟踪。

也使僵尸对象和记录异常:

  1. 转到产品 - >编辑方案
  2. 选择运行YourApp.app从左侧窗格中。
  3. 在右窗格中选择诊断。
  4. 勾选“启用僵尸对象”和“记录异常”。这可能会在应用程序崩溃时在控制台上打印一些有用的信息。

希望这可以帮助您解决您的问题。