У меня есть подкласс UIViewController, также реализующий UITableViewDelegate.
По сути, отображается UITableView, и выбор ячейки выдвигает новое представление.
Вот как выглядит код:
// NavigationContentsViewController.h
@interface NavigationContentsViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
IBOutlet UITableView * newsTable;
UIActivityIndicatorView * activityIndicator;
}
///////////////////////////////////////////////////////////////////////
// placed in NavigationContentsViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSInteger selectedCellItem = indexPath.row;
TableViewController *fvController = [[TableViewController alloc] initWithNibName:@"TableViewController" bundle:[NSBundle mainBundle]];
fvController.selectedCellItem = selectedCellItem;
fvController.link = [links objectAtIndex:selectedCellItem];
[self.navigationController pushViewController:fvController animated:YES];
[fvController release]; // #1 if removed everything works fine but getting a leak
fvController = nil; // #2
}
///////////////////////////////////////////////////////////////
// TableViewController.h
@interface TableViewController : UIViewController <UIWebViewDelegate>{
NSInteger selectedCellItem;
IBOutlet UIWebView *myWebView;
NSString *link;
UIActivityIndicatorView *activityIndicator;
}
Таким образом, когда пользователь выбирает ячейку, создается новый UIWebView.
Также отображается индикатор активности до завершения загрузки веб-представления.
Моя проблема заключается в том, что если пользователь решит вернуться из веб-представления к предыдущему представлению (тому, которое содержит таблицу) до того, как веб-просмотр завершит загрузку, приложение вылетает, получая эту ошибку: "[TableViewController responsedsToSelector:]: сообщение отправлено на освобожденный экземпляр 0x4b57460 "
Если загрузка веб-представления завершена и пользователь выбирает возврат, все в порядке.
Мне удалось решить эту проблему, удалив две строки, помеченные # 1 и # 2 в коде, но затем я получил утечку памяти (поскольку я не освобождаю TableViewController).
* 1014Все еще пытаюсь понять, что происходит.Есть идеи?Заранее спасибо.