2013-01-14 129 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. 勾選「啓用殭屍對象」和「記錄異常」。這可能會在應用程序崩潰時在控制檯上打印一些有用的信息。

希望這可以幫助您解決您的問題。