0

私は自分のテーブルを次のように宣言します。

    CGRect cgRct = CGRectMake(5, 5, 310, 363);
videoTable = [[UITableView alloc] initWithFrame:cgRct style:UITableViewStylePlain];
videoTable.backgroundColor = [UIColor clearColor];
videoTable.separatorColor = [UIColor whiteColor];
videoTable.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
videoTable.dataSource = self;
videoTable.delegate = self;
videoTable.alwaysBounceVertical = NO;
videoTable.bounces = NO;
videoTable.allowsSelection = YES;
//self.videoTable.layer.zPosition = -1;
//table.dragging = NO;
[self.view addSubview:videoTable];

ビューを離れるときにテーブルを削除します

-(void) viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
NSLog(@"*viewDidDisappear");
if (videoTable)
{
    NSLog(@"removing table");
    [videoTable removeFromSuperview];
    videoTable.delegate = nil;
    [videoTable release];
   // self.videoTable = nil;
}
}

ビューが再び読み込まれると、テーブルの兆候はありませんが、..それはまだそこにあります。

-(void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self populateFileList];

if (videoTable)
{
    NSLog(@"table still here");
}
else
{
    NSLog(@"No table");
}
}

私が行方不明になっているのは誰か説明できますか?テーブルを完全になくしたいので、新しいテーブルを割り当てることができます。

どうもありがとう、-コード

4

3 に答える 3

1

テーブルを解放した後、テーブルにnilを割り当てる必要があります。そうしないと、変数に値(テーブルオブジェクトへの古い参照)が残ります。

[videoTable release];
videoTable = nil;
于 2012-04-19T20:00:12.070 に答える
0

あなたはこれを試すことができます:

-(void)viewDidUnload{
    [super viewDidUnload];
    [self setVideoTable:nil];
}
于 2012-04-19T20:05:31.290 に答える
0

(videoTable)がtrueの場合、videoTableがnilと異なる場合。したがって、テーブルを解放した後、テーブルをnilに割り当てる必要があります。

于 2012-04-19T20:15:14.050 に答える