2013-07-25 35 views
0

我有問題無法在調用此自定義刷新時關閉CDVViewController,它保持在後臺加載並加載一個導致內存泄漏/內存使用率高的新問題。我試圖使用釋放和removeFromSuperview爲webView,子視圖,CDVViewController,ChildViewController但他們都沒有工作。我通過Storyboard運行一個Tab Bar Controller(另一個我需要將CDVViewController作爲子視圖的原因),並且當我通過safari使用web檢查器時,我可以看到在該選項卡上構建的頁面,以及在另一個選項卡上刷新時(不使用CDVViewController/phonegap),它工作正常。任何幫助深表感謝。子視圖不關閉導致內存泄漏Phonegap

因此,這裏是我的.h

#import <UIKit/UIKit.h> 
#import <ifaddrs.h> 
#import <arpa/inet.h> 
#import <Cordova/CDVViewController.h> 


@interface ThirdViewController : CDVViewController <UIWebViewDelegate> 
{ 
    IBOutlet CDVViewController *webView; 
    IBOutlet UIActivityIndicatorView *activityind; 
} 
- (IBAction)Refresh:(id)sender; 


@end 

而且我的.m

@interface ThirdViewController() 
@end 
@implementation ThirdViewController 


- (void)viewDidLoad 
{ 
    webView = [CDVViewController new]; 
    webView.startPage = @"MYWEBSITE"; 
    [self addChildViewController:webView]; 
    [self.webView addSubview:webView.view]; 

    webView.view.frame = CGRectMake(0, 0, 0, 0); 
    [activityind startAnimating]; 
    [self.webView addSubview: activityind]; 
    [self CustomActivity]; 
} 


-(void) CustomActivity 
{ 
    if ([webView.reference isEqualToString:@"TRUE"]){ //webView.reference is something I added into phonegap CDVViewController so that I am able to see when it is being loaded/used to load the custom activity/activity ind to work. 
     [activityind removeFromSuperview]; 
    }else{ 
     [NSTimer scheduledTimerWithTimeInterval:.5 target:self selector:@selector(CustomActivity) userInfo:nil repeats:NO]; 
    } 
} 

- (IBAction)Refresh:(id)sender { 

    webView = [CDVViewController new];    
    webView.startPage = @"MYWEBSITE"; 

    [self addChildViewController:webView]; 
    [self.webView addSubview:webView.view]; 


    webView.view.frame = CGRectMake (0,0,self.view.frame.size.width,(self.view.frame.size.height -44)); 
    [activityind startAnimating]; 
    [self.webView addSubview: activityind]; 
    [self CustomActivity]; 
} 

- (void)webViewDidStartLoad:(UIWebView *)webView {} 
- (void)webViewDidFinishLoad:(UIWebView *)subview {} 
- (void)loading {} 
- (void)didReceiveMemoryWarning{[super didReceiveMemoryWarning];} 

@end 

回答

0

找到了解決辦法,我不得不實施[webView.webView重裝]

- (IBAction)Refresh:(id)sender { 

[webView.webView reload]; 

}