0

Я использую UIViewController XIB создать свой UITableViewCell в IB, то я реализовал это в коде следующим образом:Это вызывает утечку памяти и как ее остановить?

if(cell == nil) 
    { 
     UIViewController *viewController = [[UIViewController alloc] initWithNibName:@"TotalViewCell" bundle:nil]; 
     cell = (TotalViewCell *)viewController.view; 
     //[viewController release]; 
    } 
    [[cell totalButton] setTitle:@"$100,000" forState:UIControlStateNormal]; 

    // Action when totalButton is tapped 
    [[cell totalButton] addTarget:self action:@selector(showTotalDetail:) forControlEvents:UIControlEventTouchUpInside]; 

    return cell; 

Обычно, я бы освободить ViewController, но я положил UIButton внутри этой клетки, и когда пользователь вводит кнопка, showTotalDetail вызывается. Это код showTotalDetail:

-(void)showTotalDetail:(id)sender 
{ 
    // Move the totalTableView up! 
    CGRect totalDetailTableViewFrame = CGRectMake(20, 200, 280, 200); 
    [totalTableView setFrame:totalDetailTableViewFrame]; 

    // Reload the new totalTableView 
    [self viewWillAppear:YES]; 
} 

Функция основном изменяет размер Tableview и перемещает его в другое место на экране. Итак, если я выпущу viewController, я получаю ошибку EXC_BAD_ACCESS. Он работает, если я не выпущу, но я боюсь, что у меня будут утечки памяти.

Любые советы?

Спасибо.

ответ

3

Вы создаете UIViewController для каждого UITableViewCell? Это довольно нестандартное поведение. Если вам нужно настроить поведение UITableViewCell, вероятно, лучше подклассифицировать его, чем использовать контроллер вида.

Если вам нужно загрузить ячейку таблицы с наконечником, посмотрите на от Apple. Этот пример присутствует без использования контроллера вида.

Что касается вашего вопроса: вы правы, что в этом случае произойдет утечка UIViewController.

+0

Yea. Я следую руководству отсюда: http://www.bdunagan.com/2009/06/28/custom-uitableviewcell-from-a-xib-in-interface-builder/ – okysabeni 2010-12-08 15:28:53

Смежные вопросы