В основном я создаю приложение, основным видом которого является MKMapView, в котором мне нужно показать некоторые аннотации (предприятий, школ и т. представление, UITableView, имеет категории, которые представляют аннотации на карте. Выбор некоторых категорий приведет к строке с их идентификаторами, и при нажатии кнопки «Назад» этот вид должен передать эту строку в MapView, где он получает объединяется с другой строкой, которая содержит другую часть «строки запроса», поэтому файл KML должен быть загружен и его аннотации должны быть просмотрены на карте.
Есть проблема, все ячейки можно выбрать (отметить), но когда я нажимаю кнопку «Назад» на панели навигации, чтобы перейти к предыдущему представлению, приложение вылетает. Когда я не выбираю ни одну ячейку и нажимаю кнопку «Назад» приложение по-прежнему аварийно завершает работу, но в файле журнала оно сообщает, что строка, которую я передавал предыдущему представлению, равна nil. Я подготовил код для передачи параметра из одного представления в другое и не понимаю, что происходит неправильно .Я публикую код, относящийся только к передаче строки между представлениями.
GisListViewController.m:
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@">>> Entering %s <<<", __PRETTY_FUNCTION__);
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:NO];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if (cell.accessoryType == UITableViewCellAccessoryNone ) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
} else if (cell.accessoryType == UITableViewCellAccessoryCheckmark ) {
cell.accessoryType = UITableViewCellAccessoryNone;
}
NSMutableDictionary * myDictionary = [[NSMutableDictionary alloc] initWithCapacity:60];
int i = 0;
for (i = 0; i < [gisCategoryID count]; i++) {
[myDictionary setObject:[gisCategoryList objectAtIndex:i] forKey:[gisCategoryID objectAtIndex:i]];
NSMutableString *paramString2 = [[[NSMutableString alloc] init] autorelease];
[paramString2 appendFormat:@"%@&", [myDictionary objectForKey:[gisCategoryID objectAtIndex:i]]];
paramString = paramString2;
}
NSLog(@"<<< Leaving %s >>>", __PRETTY_FUNCTION__);
}
- (void) viewWillDisappear:(BOOL) animated
{
NSLog(@">>> Entering %s <<<", __PRETTY_FUNCTION__);
NSString *httpString = @"http://www.ikub.al/hartav2/handlers/kmlgenerator.ashx?layerid=";
NSString *finalkmlString = [ httpString stringByAppendingString:paramString ];
[[self delegate] setKmlString:finalkmlString];
NSLog(@"<<< Leaving %s >>>", __PRETTY_FUNCTION__);
}
Надеюсь, это поможет.