2014-01-08 54 views
0

我有一個應用程序在同一個故事板上有一個UITableView和一個自定義UIViewUIView根據所選內容加載自定義圖表,並使用HighChart加載UIWebView(數據和html都在本地存儲,不會通過網絡)。當選擇UITableViewCell時更新UIView

當我選擇UITableViewCell時,視圖從不顯示。它加載子視圖(我是NSLog ing到控制檯)和所有的數據是正確的,但顯示本身永遠不刷新。我試過在20多個不同的地方堅持[myCustomView setNeedsDisplay],但我開始覺得這是別的。

是否有可能是因爲我正在加載Web視圖的問題?是否在對我的UIWebView準備做任何事情的異步調用之前重新繪製我的UIView?測試這個最簡單的方法是什麼?

一些代碼更新(跳過一些,我會更加填寫的要求):

@implemention MainViewController 

-(void)viewDidLoad { 
    ***normal viewDidLoad stuff*** 

    _myCustomView = [[MyCustomViewClass alloc] initWithFrame: CGRectMake(0,_tableview.frame.origin.y + _tableview.frame.size.height,_tableview.frame.size.width, 176)]; 
} 

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    MyCustomJsonDataObject *dataObject = [self.jsonDataArray objectAtIndex:[indexPath row]]; 
    [_myCustomView redrawWithDataObject:dataObject]; 

} 

@end 

@implementation myCustomViewClass { 
    UIScrollView *scrollView 
} 

-(void)redrawWithDataObject:(MyCustomJsonDataObject *)dataObj { 

    scrollView = [[UIScrollView alloc] initWithFrame:etc]; 

    // THere are 3 screens initialized: 1 chart data with a UIWebView, and two custom UIViews. 

    scrollView.contentSize = CGSizeMake(scrollView.size.width * 3, 176) 

    ** initialize web view from custom class ** 
    [scrollView addSubview:webView]; 

    ** initialize custom view from custom class ** 
    [scrollView addSubview:UIView1]; 

    ** initialize custom view from custom class ** 
    [scrollView addSubview:UIView2]; 

    ** set some scrollView properties (scrollable, paging, etc) ** 

    [self addSubview:scrollView]; 
    [self setNeedsDisplay]; 

} 

自定義UIWebView類從JSON對象中獲取數據,並在當地的HTML文件替換JavaScript的佔位符變量,然後將新文件反饋回webView。其他兩個視圖只是一些簡單的標籤,用於填充自定義數據對象中的數據。

+0

代碼你試過了什麼? – CoolMonster

+0

你的代碼在哪裏?如何通過查看代碼來回答這個問題甚至是遠程可能的。可能是一千個不同的東西 –

+0

我想爲你提供一些相關的代碼,但是有幾個問題:1)它是一個企業應用程序,這意味着代碼被認爲是專有的。 2)應用程序是巨大的,並且分割相關的代碼塊可能很困難。我正在嘗試從應用程序的其餘部分中分離出代碼的假複本。 – xianritchie

回答

0

我想通了,我的問題:

_myCustomView已經被情節板中的定義,所以它被初始化本身。當我在我的viewDidLoad中調用init方法時,看起來我添加了視圖的第二個實例,覆蓋了第一個實例,這就是爲什麼它顯示爲空並且看起來不刷新的原因。當我在viewDidLoad中刪除視圖的init方法時,它沒有問題。

相關問題