У меня есть представление с панелью вкладок и представлением таблицы.В определенный момент я вызываю модальное представление, и когда я отклоняю его, исходное представление, кажется, растягивается или смещается вниз, поскольку фоновое изображение ниже, а табличное представление длиннее до точки, в которой последняя ячейка выходит за пределы кадра.
Я вызываю модальное представление из tableView:didSelectRowAtIndexPath
:
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSMutableDictionary *row = [[[[self.productDetails valueForKey:@"sections"] objectAtIndex:indexPath.section] valueForKey:@"rows"] objectAtIndex:indexPath.row];
NSMutableDictionary *post = [self.productDetails valueForKey:@"post"];
if ([[row valueForKey:@"type"] isEqualToString:@"pick"])
{
self.xPicker = nil;
self.xPicker.options = nil;
self.pickerOptions = nil;
self.xPicker = [[[TablePicker alloc] initWithNibName:@"TablePicker" bundle:[NSBundle mainBundle]] autorelease];
NSMutableDictionary *newPicker = [[[NSMutableDictionary alloc] init] autorelease];
[newPicker setValue:[NSString stringWithFormat:@"%d", indexPath.section] forKey:@"section"];
[newPicker setValue:[NSString stringWithFormat:@"%d", indexPath.row] forKey:@"row"];
[newPicker setValue:[row valueForKey:@"options"] forKey:@"options"];
[newPicker setValue:[row valueForKey:@"value"] forKey:@"value"];
self.xPicker.options = [NSMutableDictionary dictionaryWithDictionary:newPicker];
self.pickerOptions = [NSDictionary dictionaryWithDictionary:newPicker];
self.xPicker.view.frame = self.view.bounds;
[self presentModalViewController:self.xPicker animated:YES];
}
}
Внутри контроллера модального представления я делаю некоторые вещи, затем запускаю уведомление, чтобы родительский контроллер знал, что это нормально.отклонить это.Эта часть кажется неправильной, но я иногда получал сообщение об ошибке, когда у меня был вызов модального представления:
[self.parentViewController dismissModalViewControllerAnimated:YES];
В любом случае, блок кода, в котором я отклоняю модальное представление, выглядит следующим образом:
- (void) reloadCell
{
[self dismissModalViewControllerAnimated:YES];
if (self.xPicker.choice != nil)
{
NSDictionary *choice = self.xPicker.choice;
NSMutableDictionary *row = [[[[self.productDetails valueForKey:@"sections"] objectAtIndex:[[choice valueForKey:@"section"] intValue]] valueForKey:@"rows"] objectAtIndex:[[choice valueForKey:@"row"] intValue]];
[row setObject:[choice valueForKey:@"value"] forKey:@"value"];
[[self.productDetails valueForKey:@"post"] setObject:[choice valueForKey:@"value"] forKey:[row valueForKey:@"key"]];
Request *xReq = [[[Request alloc] init] autorelease];
[NSThread detachNewThreadSelector:@selector(updateOrderFromProductDetails:) toTarget:xReq withObject:[self.productDetails valueForKey:@"post"]];
self.xPicker = nil;
}
}
Я не знаю, связано ли это, но мне показалось интересным, что, когда я представляю этот модальный контроллер, когда устройство находится в альбомном режиме, вид становится шатким.
Кто-нибудь знает, какчтобы исправить это?
Редактировать: После некоторого поиска выясняется, что обе проблемы связаны и имеют отношение к тому, что мой текущий контроллер представления является подпредставлением другого представленияконтроллер, но не через навигационный контроллер.
Насколько я понимаю, мое решение не использовать навигационный контроллер как-то путает мой стек представлений.У меня было чувство, что я снова укушу меня в зад.
К сожалению, я не могу найти решение моей проблемы где-либо.