2012-03-19 48 views
0

首次與CorePlot工作(幾個小時試圖建立起來後:P)對我的看法子視圖的TableView的去除 - 泰伯維不可見

,我有一個實現代碼如下。當某個IBAction被調用時,我想顯示另一個視圖(圖形)而不是tableview。

我的做法是添加一個與tableview相同大小的子視圖。它可以很好地顯示圖形,但是當我從[table subviews]中刪除圖形視圖時,tableview不會再出現。

注:

expenseTable: my tableView 
hasSubView: (BOOL) that indicates if a graph is shown right now or not 

代碼

-(IBAction)displayDayBalanceGraph:(id)sender{ 
if (hasSubView) { 

    [[expenseTable subviews] makeObjectsPerformSelector: @selector(removeFromSuperview)]; 
    NSLog(@"%@",expenseTable.subviews); 
} 

else{ 
    [self initializeMonthArray]; 
    CPTGraphHostingView *host = [self buildGraphView]; 
    [expenseTable addSubview:host]; 
    CPTXYGraph *graph = [[CPTXYGraph alloc ]initWithFrame:host.frame]; 
    host.hostedGraph = graph; 
    CPTScatterPlot *plot = [[CPTScatterPlot alloc]init ]; 
    plot.dataSource = self; 
    [graph addPlot:plot]; 
    [expenseTable reloadData]; 
    hasSubView = !hasSubView; 
} 
} 

-(CPTGraphHostingView *)buildGraphView{ 
    CPTGraphHostingView *view = [[CPTGraphHostingView alloc]initWithFrame:CGRectMake(0, 0, 312, 260)]; 
    [view setBackgroundColor:[self grayColor]]; 
    return view; 
} 

1截圖:TableView中顯示

tableview

第二截圖:GraphView顯示 旁註:這是一個sampleplot =)

graph

3截圖:GraphView駁回

empty

有沒有人一個想法是什麼我錯過了什麼? (或混亂;))

+0

- 因爲所有的細胞都是子視圖,我必須將它們全部刪除,我只是想通了。所以我需要知道新的子視圖有哪些索引?有任何想法嗎? – 2012-03-19 17:53:21

+0

你是如何解僱GraphView的? – 2012-03-19 19:32:47

+0

看到上面的代碼:'[[expenseTable子視圖] makeObjectsPerformSelector:@selector(removeFromSuperview)];' – 2012-03-19 21:41:41

回答

0

通常不是一個好主意,作爲UITableView子視圖添加視圖。

相反,你既可以刪除表視圖,並在核心情節視圖替換:

[tableView removeFromSuperview]; 
[containerView addSubview:corePlotView]; 

請確保您有表視圖的引用某個地方,否則會被釋放。

+0

我今天晚些時候會嘗試在此先感謝(當然,如果它有效的話,那麼就不行)。我有點懷疑在桌子上使用subvies,但我認爲生病嘗試(對我來說)最明顯的方式 - 我不知道你可以替換視圖:-) – 2012-03-20 07:43:33

+0

只是試過了 - 實際上[tableview superview]沒有一個成員函數'replaceSubview' - 任何想法? tableview是在一個uiviewcontroller中,它只是實現了和數據源。 – 2012-03-20 08:49:24

+0

對不起,我正在回答Mac OS。在iOS上,該方法不存在,我已經更新了我的答案。只是你知道,iOS問題應該被標記[tag:cocoa-touch]而不是[tag:cocoa]。我更新了標籤。 – 2012-03-20 10:31:34