2012-03-25 42 views
0

我試圖訪問已viewDidLoad中過程中創建一個UIWebView時有一個主要的問題時,會出現空時,一個UIWebView出現空UIWebView的調用來回回的方法

這是我如何申報財產

@property (nonatomic, retain) UIWebView *detailsView; 

實施

@implementation iPadMainViewController 

@synthesize detailsView; 


- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    detailsView = [[UIWebView alloc] initWithFrame:CGRectMake(500, 0, 512, 768)]; 
    [self.view addSubView:detailsView]; 
} 

當從

- (void)loadDetailedContent:(NSString *)s 
{ 
    NSLog(@"%@", detailsView); 
} 
0訪問

我得到NULL,這是一種正常行爲還是我做錯了什麼?

這裏是被稱爲,從被觸摸的意見子類的touchesBegan,

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    iPadMainViewController *mycontroller = [[iPadMainViewController alloc] init]; 
    self.delegate = mycontroller; 

    [self.delegate loadDetailedContent:NewsId]; 
} 
+0

首先所有的細節查看(但我會給名稱細節WebView,任何方式並不重要)是一個屬性,所以你應該使用**自**操作符。當你調用你的loadDetailedContent方法? – 2012-03-25 18:57:40

+0

我已將它更改爲self,但仍爲零,我在調用同一視圖控制器上的視圖時調用它 – Alexidze 2012-03-25 20:01:06

回答

0

你肯定loadDetailedContentviewDidLoad之前叫什麼名字?在兩種方法中設置斷點並查看哪一個首先被擊中。

編輯由於您通過代碼更新了問題,很容易發現問題出現的原因。在touchesBegan中,您將實例化UIViewController,然後致電loadDetailedContent。這意味着loadDetailedContent將在viewDidLoad之前被調用。

viewDidLoad在創建它所控制的視圖時首先被調用。所有的

+0

loadDetailedContent在同一UIViewController上的UIView被觸摸時調用,所以是在viewDidLoad 。順便說一下,被觸摸的UIView是一個具有 - (void)touchesBegan:(NSSet *)觸及的事件:(UIEvent *)事件重寫和哪個調用loadDetailedContent的子類,這可能是原因嗎? – Alexidze 2012-03-25 19:21:53

+0

它是否在touchesBegan上調用loadDetailedContent。你能告訴我們touchesBegan的代碼嗎? loadDetailedContent被寫入同一個類文件中? – 2012-03-25 20:05:32

+0

我添加了觸摸開始代碼到主要問題 – Alexidze 2012-03-25 20:16:47

0

1日改變你合成到

@synthesize detailsView = _detailsView 

和分配你的uiwebvie

_detailsView = [[UIWebView alloc] initWithFrame:CGRectMake(500, 0, 512, 768)]; 

並嘗試在touchBegan你ipadMainController推到主屏幕和vieDidLoad通話loadDetailedContent

+0

更改爲_detailsView並沒有改變任何東西,我沒有得到第二點,我如何將主控制器推入它的子視圖? – Alexidze 2012-03-25 20:41:02

+0

如果它是您的主控制器,您爲什麼要爲他自己創建委託:o?只需調用[self loadDetailedContent];你可以有NUll,因爲UIWebView不是NSString,而你是NSLogging%@,它是字符串,設置breakpoit和chceck webview實例 – mientus 2012-03-25 20:44:19

+0

不,我有一個應接受觸摸事件的UIView的子類,在子類i重寫「touchesbegan」並調用其委託的方法 - iPadMainView控制器,我在做些什麼愚蠢的事情? :) – Alexidze 2012-03-25 20:51:34